데이터베이스/데이터베이스 공부

데이터베이스의 기본(엔터티, 릴레이션, 속성, 도메인, 필드와 레코드, 관계, 키)

아밍나 2022. 8. 11. 10:32
728x90

1. 데이터베이스의 기본

1) 데이터베이스

데이터베이스란, 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 

 

2) DBMS

데이터베이스를 제어, 관리하는 통합 시스템DBMS(DataBase Management System)라고 한다. 즉, DBMS는 데이터베이스를 조작하는 별도의 소프트웨어라고 할 수 있는데 Oracle, MySQL, MongoDB등이 있다.

DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회(CRUD)를 수행한다.

1.1 엔터티(Entity)

사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사

→ 서비스의 요구 사항에 맞춰 속성이 정해짐.

   1.1.1) 약한 엔터티, 강한 엔터티

      - 약한 엔터티: 독립적으로 존재하지 못하고 다른 엔터티의 존재 여부에 따라 종속적임. (의존성)

      - 강한 엔터티: 독립적으로 존재할 수 있는 강한 개체. (독립적) 다른 엔터티와 관계를 가질 때 다른 엔터티에 기본키를 공유함.

        ex) 건물(강한 엔터티) 안에 존재하는 방(약한 엔터티)

   1.1.2) 엔터티 특징

     - 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다. 

        ex) 환자, 토익 응시 횟수 등

     - 유일한 식별자에 의해 식별이 가능해야 한다.

     - 영속적으로 존재하는 인스턴스의 집합이어야 한다. ('한 개'가 아니라 '두 개 이상')

     - 업무 프로세스에 의해 이용되어야 한다.

     - 반드시 속성이 있어야 한다.

     - 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.

   1.1.3) 엔터티 종류(수정중)

     - 기본 엔터티
        - 업무에 원래 존재하는 정보
        - 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성이 가능하다.
        - 타 엔터티의 부모의 역할을 하게 된다.
        - 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다.

1.2 릴레이션(relation)

데이터베이스에서 정보를 구분하여 저장하는 기본 단위.

1.3 속성(attribute)

릴레이션에서 관리하는 구체적이고 고유한 이름을 갖는 정보.

→ 서비스의 요구 사항을 기반으로 관리해야하는 속성들만 엔터티의 속성이 된다.

 

   - 속성의 특성에 따른 분류(수정중)

     - 기본 속성

     - 설계 속성

     - 파생 속성

        : 데이터를 조회할 때 빠른 성능을 낼 수 있도록 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성

1.4 도메인(domain)

릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합.

▲ 속성과 도메인

회원이라는 릴레이션이름, 아이디, 주소, 전화번호, 성별이라는 속성이 있다.

성별이라는 속성은 {남, 여}라는 도메인을 가진다.

+) 각 속성은 가질 수 있는 값의 범위가 있는데 이를 그 속성의 도메인이라 한다.
+) 엔터티 내에서 속성에 대한 데이터 타입과 크기 그리고 제약사항을 지정한다.

1.5 필드와 레코드

▲ 필드와 레코드

위 테이블 기준)

 - 필드(속성): 이름, 아이디, 주소, 번호

 - 레코드(튜플): 테이블에 쌓이는 행(row) 단위의 데이터

필드 타입
- 숫자 타입: TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
타입 용량(BYTE) 최솟값(부호 O) 최솟값(부호 X) 최댓값(부호 O) 최댓값(부호 X)
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -263 0 263-1 264-1
- 날짜 타입: DATE, DATETIME, TIMESTAMP
타입 용량 범위 용도
DATE 3 1000-01-01 ~ 9999-12-31 날짜 O, 시간 X
TIMESTAMP 4 1970-01-01 00:00:01
~ 2038-01-19 03:14:07
날짜 및 시간 모두 포함
DATETIME 8 1000-01-01 00:00:00
~ 9999-12-31 23:59:59
날짜 및 시간 모두 포함
- 문자 타입: CHAR, VARCHAR, TEXT, BLOB, ENUM, SET

1.6 관계

1:1 관계, 1:N 관계, M:N 관계

▼ A 테이블과 B 테이블 관계 화살표

하나의 A는 하나의 B로 구성되어 있다.
하나의 A는 하나 이상의 B로 구성되어 있다.
하나의 A는 0 또는 하나의 B로 구성되어 있다.
하나의 A는 0 또는 하나 이상의 B로 구성되어 있다.

- 1:1 관계

▲ 1:1 관계

 

- 1:N 관계

▲ 1:N 관계(한 개체가 다른 많은 개체를 포함)

 

- M:N 관계

▲ M:N 관계(두 개의 테이블을 직접적으로 연결하지 않고 1:N, 1:M 관계를 갖는 테이블 두 개로 나눠서 설정)

1.7 키

기본키, 외래키, 후보키, 슈퍼키, 대체키

- 기본키(Primary Key, PK)

   : 유일성과 최소성 만족.

- 외래키(Foreign Key, FK)

   : 다른 테이블의 기본키를 그대로 참조하는 값으로, 개체와의 관계를 식별하는 데 사용. (중복 가능)

- 후보키(candidate key)

   : 기본키가 될 수 있는 후보. (유일성과 최소성 만족) 

- 대체키(alternate key)

   : 후보키가 두 개 이상일 때, 어느 하나를 기본키로 지정하고 남은 후보키

- 슈퍼키(super key)

   : 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키.

▲ 키 간의 관계


마지막 수정) 2022-08-30

차차 수정할 예정. 틀린 내용 지적 환영

참고자료

- 면접을 위한 CS 전공지식노트 Chapter 4. 데이터베이스 Section1 데이터베이스의 기본

- 한국데이터산업진흥원 SQL 자격검정 실전문제

728x90
반응형