개발/database

[DB] 데이터베이스란

yun000 2024. 12. 16. 11:54

<관계형 데이터베이스>

= 데이터를 효율적으로 관리하기 위해서 사용한다.

데이터 무결성 제공, 공유 가능, 표준화 가능, 중복 제거, 정확성과 일관성 제공

수정 삭제를 빈번하게 하는 데이터(OLTP데이터)를 저장하는 것

 

+) 모두 ansi SQL을 따르기 때문에 모든 데이터베이스가 유사한 SQL 문법을 가지고 있다

+) hadoop= 저장은 가능하지만 수정되지 않는 OLAP 데이터 저장소

몽고DB=문서 지향 데이터베이스. 대용량 데이터 처리에 강하다.

 

<ACID 원칙>

트랜잭션이 안정적으로 수행되는 것을 보장해주는 것

+) 트랜잭션 = 데이터베이스 상태 변화시키는 작업 단위

 

1️⃣원자성(Atomicity) 

= 트랜잭션이 부분적으로만 실행되거나 중단되지 않는 것을 보장.

ex) 트랜잭션이 끝까지 완료되거나, 아예 진행 되지 않던가 해야한다. 실행되다가 말면 안됨

2️⃣일관성(Consistency)

=트랜잭션 실행 성공 후에는 일관성 있는 데이터베이스 상태로 유지하는 것

ex) 문자를 저장하는 곳에 숫자가 저장되거나. 반드시 따라야하는 규칙을 따르지 않으면 안된다.

3️⃣독립성(Isolation)

=트랜잭션 수행 도중에 다른 트랜잭션 작업이 끼어들지 못하게 하는 것

4️⃣지속성(Durability)

=트랜잭션 성공 후에는 영원히 반영되어야함

 

<ERD>

=E-R 다이어그램

객체(Entity)의 관계(Relationship)을 나타낸 도표.

데이터베이스의 구조를 시각화하는 방식

요구사항을 Entity관계 도표로 표현한 것

 

ERD 사용 목적

ER관계를 나타낸다.

조직에 대한 정보를 문서화하여 빠르게 파악 가능

시스템 기능을 명확히 이해 가능

데이터베이스 설계 표본

운영프로그램 만들 때 참조 가능

 

ERD 구성

- Entity = 물리적 객체, 나타내고자 하는 대상

- Attribute = 각각 entity의 특징, 데이터

- relationship = entity가 서로 작용하거나 연관되는 방식

     cardinality=두 entity간의 연관성. 

 

ERD 표기 규칙

 

0..1 0개또는 1

1..* 1개 이상

0..* 0개 이상

1 1개

 

<관계형 데이터베이스 기본 구조>

일반적 개념 모델링 DB객체
데이터 집합, relation, 관계 집합 entity set table
row tuple, entity record
column attribute filed

 

 

<테이블>

Super Key = 유일성 만족하는 속성 집합. 

Candidate Key = 유일성과 최소성 만족하는 속성 집합

Primary Key=후보키중에 튜플을 효율적으로 구별하는 키로 지정 / 중복 허가 안함, NULL없어야함

Alternate Key= 기본키가 되지 못한 후보키들

Foreign Key = 다른 컬런을 참조하는 것(다른 테이블 혹은 같은 테이블의 다른 열을 참조할 수 있음)

+) join=중요한 기능이지만 데이터 많을 수록 조회 성능이 저하될 수 있다.

 

<SQL 문장>

🍏DML

=데이터 정의어 Data Definition Language

SELECT=데이터 검색

INSERT= 새 행 입력

UPDATE = 행 갱신

DELETE=행 제거

 

🍏 DDL

=데이터 조작어 Data Manipulation Language

CREATE=데이터 구조 생성

ALTER=데이터 변경

DROP=제거

RENAME=이름 변경

TRUNCATE = 구조만 남기고 모든 데이터 삭제

 

🍏 TCL

transaction 제어. Transaction Control Language

COMMIT, ROLLBACK, SAVEPOINT = 데이터 변경을 관리

 

🍏 DCL

= 데이터 제어 Data Control Lanuage

GRANT, REVOKE=데이터베이스에 접근하고 객체 사용하는 권한 주거나 회수

 

 

<Sample Table>

아래 표를 외워서 실무에 사용