[개발서적] DB 설계 입문를 위한 데이터베이 설계 및 구축 내용 정리

bbbbbhyun·2026년 2월 27일

Study

목록 보기
20/22

데이터베이스 개요

관계형 데이터베이스의 주요 개념

파일에 기초한 정보시스템에서 방대한 데이터로 인하여 다음과 같은 문제점들이 발생하였다.

  • 데이터 종속성 : 데이터를 사용하는 프로그램의 구조가 데이터 구조(파일 구조)의 영향을 받는 것을 의미하며 이는 프로그램의 개발과 유지보수를 어렵게 한다.
  • 데이터 무결성의 침해 : 데이터 무결성이란 저장된 데이터의 내용이 본래 의도했던 데이터의 형식, 범위를 준수해야 한다는 성질이다. 조건을 위배하는 데이터가 저장될 때 데이터 무결성의 침해라고 표현한다.
  • 데이터 중복성 : 같은 내용의 데이터가 여러 곳에 중복하여 저장되는 것을 의미한다.
  • 데이터 불일치 : 중복 저장된 데이터들이 서로 일치하지 않는 것을 의미한다.
  • 데이터 표준화의 어려움 : 표준화된 규칙이 있다 하더라도 개발자가 이를 지키지 않을 수 있는 여지가 있다를 의미한다.
  • 데이터 보안성의 결여 : 대부분의 파일은 Text 형식이나 잘 알려진 형식으로 저장되어 쉽게 파일을 열어 내용을 볼 수 있고 파일의 공유를 위해 접근이 쉬운 위치에 파일을 저장하여 보안 유지가 어렵다.

이를 해결하기 위하여 데이터베이스가 등장하였고 특징은 다음과 같다.

  • 데이터 독립성 지원
  • 데이터 무결성 유지
  • 데이터 중복성 및 불일치 최소화
  • 데이터 표준화의 용이성
  • 높은 데이터 보안성
  • 데이터 공유의 용이성

관계형 데이터베이스 용어는 다음과 같다.

  • 릴레이션 : 테이블이라고 지칭했던 것으로 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다.
  • 속성 : 하나의 릴레이션은 현실세계의 어떤 개체를 표현하고 저장하는데 사용되는데, 표현할 개체의 구체적인 정보 항목에 해당하는 것이다
  • 튜플 : 개체에 속한 구성원들 개개의 정보를 표한한다.
  • 도메인 : 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합이다.
  • 후보키 : 테이블에서 각 튜플을 구별하는데 기준이 되는 하나 혹은 그 이상의 컬럼들의 집합이다.
  • 기본키 : 후보키 중 튜플을 구분하는 기준으로 사용하는 선택된 키이다.
  • 대체키 : 선택되지 않은 후보키이다.
  • 복합키 : 두개 이상의 컬럼이 모여 키의 역할을 하는 경우이다.
  • 외래키 : 테이블 간의 데이터의 일치와 무결성을 보증해주는 수단이다.
  • 뷰 : 하나의 테이블, 또는 여러 테이블에 대하여 특정 사용자나 조직의 관점에서 데이터를 바라볼 수 있도록 해주는 수단이며 가상 테이블이기도 한다.

정보시스템 구축 절차와 데이터베이스 설계

데이터베이스 설계란 현실세계를 분석하여 이를 개념적 모델로 표현하고, 이를 바탕으로 데이터베이스를 구축하는 과정이라한다. 데이터베이스 설계는 논리적 데이터베이스 설계, 물리적 데이터베이스 설계로 구분된다.

  • 논리적 데이터베이스 설계 : 현실세계를 관찰,분석하여 ERD로 불리는 개념적 모델을 만드는 과정이다.
  • 물리적 데이터베이스 설계 : 논리적 설계를 바탕으로 실제 뎅ㅣ터베이스를 구축하기 위해 데이블, 인덱스, 뷰 등을 설계하고 반정규화를 시행하는 과정이다.

논리적 데이터베이스 설계

데이터 모델링의 주요 개념

  • 엔티티 : 업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 개체를 말한다.

  • 속성 : 엔티티에서 관리해야 할 최소 단위의 정보 항목을 말하며 엔티티는 하나 이상의 속성을 포함한다.

  • 관계 : 두 엔티티 사이의 상호 공유하는 속성이 있다이다.

  • 주식별자와 외래식별자의 개념은 기본키와 외래키의 개념에 대응한다.

  • 부모테이블의 튜플에 대한 규칙

규칙형태내용
삭제규칙restrict부모 테이블에 있는 값을 자식 테이블에서 참조하고 있다면 부모 테이블에 있는 그 값은 삭제할 수 없다.
cascade부모 테이블에 있는 값을 삭제하면 그것을 참조하고 있는 자식 테이블의 값도 함께 삭제한다.
set null부모 테이블에 있는 값을 삭제하면 그것을 참조하고 있는 자식 테이블의 값은 null로 바뀐다.
set default부모 테이블에 있는 값을 삭제하면 부모 테이블에 있는 그 값은 미리 지정해 놓은 값으로 바뀐다.
none부모 테이블에 있는 값을 자식 테이블에서 참조하고 있다면 부모 테이블에 있는 그 값을 그대로 유지한다.
수정규칙restrict부모 테이블에 있는 값을 자식 테이블에서 참조하고 있다면 부모 테이블에 있는 그 값은 수정할 수 없다.
cascade부모 테이블에 있는 값을 수정하면 그것을 참조하고 있는 자식 테이블의 값도 함께 수정한다.
set null부모 테이블에 있는 값을 수정하면 그것을 참조하고 있는 자식 테이블의 값은 null로 바뀐다.
set default부모 테이블에 있는 값을 수정하면 부모 테이블에 있는 그 값은 미리 지정해 놓은 값으로 바뀐다.
none부모 테이블에 있는 값을 수정하면 부모 테이블에 있는 그 값을 그대로 유지한다.
  • 자식테이블의 튜플에 대한 규칙
규칙형태내용
삭제규칙restrict자식 테이블에서 튜플을 삽입할 때 부모 테이블에 없는 값을 사용하면 튜플 삽입이 안되게 한다.
none자식 테이블에서 튜플을 삽입할 때 어떤 값을 사용해도 튜플이 삽입된다.
수정규칙restrict자식 테이블에서 튜플을 수정할 때 부모 테이블에 없는 값을 사용하면 튜플 수정이 안되게 한다.
none자식 테이블에서 튜플을 수정할 때 어떤 값을 사용해도 튜플이 수정된다.
  • 정규화 : ERD 내에서 중복을 찾아 제거해 나가는 과정을 말한다. 1~5차까지 정규화가 있다.
    • 1차 정규화 : 엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때 하나의 속성이 단일 값을 갖도록 하는 것을 말한다.
    • 2차 정규화 : 주식별자가 아닌 속성 중에서 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 과정이다.
    • 3차 정규화 : 주식별자가 아닌 속성들 중에서 종속 관계에 있는 속성을 찾아 제거하는 과정이다.
  • 도메인 : 데이터베이스 개요에서 정의한것과 같으며 엔티티와 속성에 대응하는 테이블의 컬럼에 대한 데이터 타입과 길이를 의미한다. 표현하는 방법은 2가지이다.
create table emp(
empid int(7),
emp_name varchar(30),
manager int(7),
address varchar(100));
create domain emp_id int(7);
create domain emp_name varchar(30);
create domain address varchar(100);

create table emp(
empid emp_id,
emp_name emp_name,
manager emp_id,
address address);

물리적 데이터베이스 설계

논리적 설계를 물리적 설계로 전환하기

  • 엔티티 -> 테이블
  • 속성 -> 컬럼
  • 주식별자 -> 기본키
  • 외래식별자 -> 외래키
  • 반정규화 : 정규호와 대비되는 개념으로 정규화의 목적이 ERD에 포함되어 있는 중복을 제거함으로써 데이터를 정확하게 관리하는 것, 어느 정도의 중복은 감수하고 데이터베이스의 성능을 향상시키는것이다.
  • 인덱스 : 테이블에 대한 검색 속도를 향상시키는 수단이다.
profile
BackEnd developer

0개의 댓글