데이터베이스 - 엔터티, 릴레이션, 속성, 도메인
데이터베이스(Database)란?
- 연관된 데이터의 모임으로 데이터는 특정 구조에 따라 체계적으로 저장되어 있음
- 데이터베이스 관리 시스템(DBMS, Database Management System)을 통해 DB를 관리할 수 있음
- DBMS에 정의된 쿼리 언어를 통해 데이터에 대한 CRUD(Create, Read, Update, Delete) 작업이 가능
- DB는 트랜잭션 관리, 동시 접근 제어, 사용자 권한 관리, 데이터 암호화, 백업 및 복구 등의 기능을 제공
엔터티(Entity)
- 데이터베이스에서 관리하는 데이터의 개체(객체)를 의미, 현실 세계의 특정 사물이나 개념을 추상화한 것
- 예시 : 학생, 강의, 책, 제품
- 특징 : Entity는 속성을 통해 특정 정보를 가짐
- 예를 들어, 학생 엔터티는 이름, 학번, 전공 등의 속성을 가질 수 있음
강한 엔터티(Strong Entity)
- 강한 엔터티는 독릷적으로 존재할 수 있는 엔터티로 다른 엔터티에 의존하지 않고 고유한 기본 키(Primary Key)를 가짐
- 특징 :
- 고유한 기본 키 : 강한 엔터티는 고유하게 식별될 수 잇는 기본 키를 가지고 있음
- 독립성 : 다른 엔터티에 의존하지 않고 독립적으로 존재할 수 있음
약한 엔터티(Weak Entity)
- 약한 엔터티는 고유하게 식별할 수 있는 기본 키가 없으며 다른 엔터티(강한 엔터티)에 의존하여 식별됨
- 약한 엔터티는 강한 엔터티의 기본 키를 외래 키(Foreign Key)로 포함하여 자신을 식별
- 특징 :
- 식별 관계 : 약한 엔터티는 강한 엔터티에 의존하여 식별되며 이 관계를식별 관계
(Identifying Relationship)
라고 함
- 복합 키 : 약한 엔터티는 자신의 속성 외에 강한 엔터티의 기본 키를 포함하여 복합 키(Composite Key)를 가짐
- 존재 의존성 : 약한 엔터티는 강한 엔터티가 존재할 때만 의미가 있으며 강한 엔터티가 삭제되면 약한 엔터티도 삭제될 수 있음
릴레이션(Relation)
- 관계형 데이터베이스에서 데이터를 테이블 형태로 저장하는 것을 의미, 릴레이션은 엔터티 간의 관계를 나타내기도 함
- 예시 : 학생 테이블, 강의 테이블, 도서 테이블
- 특징 : 각 Relation은 행(레코드)과 열(속성)로 구성되며 행은 각 Entity의 인스턴스를 나타내고 열은 속성을 나타냄
MySQL 기준
- MySQL 기준 :
레코드 - 테이블 - DB
속성(Attribute)
- Entity가 가지고 있는 데이터 항목이나 필드를 의미, 속성은 Entity의 특성을 나타냄
- 예시 : 학생 Entity의 속성으로 이름, 학번, 전공 등이 있음
- 특징 : 각 속성은 고유한 데이터 타입과 제약 조건을 가질 수 있음
도메인(Domain)
- 속성이 가질 수 있는 값의 범위나 집합
- 예시 : 성별 속성의 도메인은 '남자', '여자'일 수 있고 점수 속성의 도메인은 0에서 100까지의 정수일 수 있음
- 특징 : 도메인은 속성 값의 데이터 타입과 제약 조건을 정의
예시
- 학생 데이터를 관리하는 DB
- 엔터티(Entity) : 학생(Student)
- 릴레이션(Relation) : 학생 테이블(Student Table)
- 속성(Attribute) : 학번(Student ID), 이름(Name), 전공(Major), 나이(Age)
- 도메인(Domain)
- 학번 : 정수, 유일해야 함
- 이름 : 문자열
- 전공 : 문자열
- 나이 : 정수, 18에서 99사이
학번(Student ID) | 이름(Name) | 전공(Major) | 나이(Age) |
---|
1 | 김철수 | 컴퓨터공학 | 20 |
2 | 이영희 | 전자공학 | 22 |
3 | 박지훈 | 기계공학 | 21 |