[DB] Database 개요

2023. 3. 30. 03:14·개발/DB

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
  • [SQL] SQL 정의와 종류
로또
로또
게임 개발자 연습생의 발전 일지
  • 로또
    게임 개발 발전소
    로또
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 개발 N
        • 코딩테스트
        • JAVA
        • DB
        • Unity N
      • 강의 N
        • 패스트캠퍼스 0원 챌린지
        • 멋쟁이 사자처럼 유니티 부트캠프 N
      • 게임
        • 공부
        • 리뷰
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    자료구조
    Unity
    완전탐색
    그래프
    dfs
    코딩테스트
    직장인자기계발
    직장인인강
    3D웹인터랙티브
    그리디알고리즘
    패스트캠퍼스후기
    게임개발
    멋쟁이사자처럼후기
    Java
    분리집합
    트리
    BFS
    패스트캠퍼스
    그리디
    백준
    환급챌린지
    2839
    수강료0원챌린지
    C#
    한번에끝내는프론트엔드개발초격차패키지Online
    오공완
    패캠챌린지
    C4D
    백트래킹
    패캠인강후기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
로또
[DB] Database 개요
상단으로

티스토리툴바