본문 바로가기
개발/DB

[DB] Database 개요

by 로또 2023. 3. 30.

Database

필요에 의해 논리적으로 연관된 데이터를 모아 일정한 형태로 지정해 놓은 것

 

DBMS (Database Management System)

  • 데이터베이스 관리 프로그램
  • 데이터 입력, 수정, 삭제 등의 기능을 제공한다.

 

데이터베이스 모델링 3단계 과정

1. 개념적 데이터 모델링

데이터 요구사항을 찾고 분석해서 업무를 일반화한다.

ERD(Entity, Attribute, Relation)를 도출한다. 

RDBMS 개념을 생각하지 않는 단계이다.

2. 논리적 데이터 모델링

도출한 ERD에 RDBMS 이론을 적용하여 정돈한다.

어떤 DBMS 제품을 사용할 지는 신경 쓰지 않는 단계이다.

1. M:M 관계 해소

  • 1:1 → 식별 관계로 한쪽의 primary key를 한쪽의 foregin key로 전이한다.
  • 1:다 → 비식별 관계로 1쪽의 primary key를 다쪽의 foreign key로 전이한다.
  • 다:다 → 논리적으로는 존재하지만 물리적으로는 존재할 수 없다. 그래서 반드시 테이블을 새로 추가해야 한다.
    양쪽의 primary key를 반대쪽의 foreign key로 전이한다.
    복합키가 생길 수 있지만 복합키는 사용할 때 불편하기 때문에 대리키를 활용하기도 한다.

2. 정규화 과정

데이터의 중복을 최소화한다.

- 제 1 정규화 : 원자성 확보. 값이 2개 이상 들어가는 셀이 있어서는 안 된다.

- 제 2 정규화 : 부분 종속성 제거. 중복키가 있는 경우 쪼개서 두 개의 테이블로 나눈다.

- 제 3 정규화 : 이행적 종속성 제거. PK는 단일키이지만 얽혀있는 데이터가 중복해서 들어온다면 테이블을 쪼개 나눠준다.

3. 참조 무결성 규칙 정의

외래키는 참조할 수 없는 값을 가질 수 없다.

3. 물리적 데이터 모델링

DBMS 제품을 선택하여 데이터가 컴퓨터에 물리적으로 어떻게 저장될 것인지 정한다.

  • table, view ,sequence, index 등을 생성한다.
  • 데이터 타입, 크기, 제약 조건 등을 입력한다.
  • 샘플 데이터 넣고 성능 체크(Test)한다.
  • 정규화 과정을 통해 table이 많아지면 join을 많이 하기 때문에 성능이 저하 된다. 따라서 역정규화 과정을 거친다.

'개발 > DB' 카테고리의 다른 글

[SQL] 데이터 조작 언어(DML) - INSERT, UPDATE, DELETE, MERGE  (0) 2023.03.30
[SQL] SQL 정의와 종류  (0) 2023.03.30

댓글