여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
데이터베이스 관리 시스템 (DBMS, DataBaseManagementSystem)
데이터 모델링에서 사용되는 객체
업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 "어떤 것(Thing)"
특징
분류
엔터티가 가지고 있는 특징이나 성질
열, 필드라고도 함

속성은 엔터티의 정보를 나타내고 더 이상 분리되지 않는 최소의 단위로써 엔티티의 성질, 분류, 수량, 상태, 특성 등을 나타내는 세부 항목으로 업무에 필요한 데이터를 저장
고려 사항
분류
엔티티의 속성들이 가질 수 있는 값들의 집합
-> 속성에 대응하는 컬럼에 대한 데이터 타입(Data Type)과 길이를 의미
두 속성의 도메인이 같다 == 두 속성의 데이터 타입과 길이가 같다
일반적인 데이터 타입처럼 사용 가능
데이터 모델링 관점에 있어 데이터 표준화 측면에서 매우 중요한 요소
-> 도메인이 체계화 및 표준화되지 않으면 물리 모델 구현 관점에서 속성과 엔티티의 이름이 표준화되지 않을 수 있고 데이터 타입의 정확성까지 잃을 수 있기 때문
정의 방법
데이터베이스에서 하나의 단위로 취급되는 자료의 집합
행, 튜플이라고도 함
기능
데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)
종류
릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분집합
모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 함
릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함
후보키 중에서 선택한 주키(Main Key)
한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
Null 값을 가질 수 없습니다. (개체 무결성의 첫번째 조건)
기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없음
-> 개체 무결성의 두번째 조건
후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들
보조키라고도 함
슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타내지 않음
릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키지 못함
관계(Relation)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성
외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구로 사용
외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력할 수 없음 (참조 무결성 조건)
1:1 관계
1:N 관계
N:M 관계 (다대다)
자기참조 관계(Self Referencing Relationship)
데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위
-> 질의어(SQL)를 이용하여 데이터베이스를 접근 하는 것을 의미
특징 (ACID)
Commit
Rollback
데이터의 정확성, 일관성, 유효성이 유지되는 것
-> 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지
1) 개체 무결성 (Entity integrity)
모든 테이블이 기본 키 (primary key)로 선택된 필드 (column)를 가져야 함
기본 키로 선택된 필드는 고유한 값을 가져야 하며, 빈 값은 허용하지 않음
2) 참조 무결성 (Referential integrity)
관계형 데이터베이스 모델에서 참조 무결성은 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되는 것
3) 도메인 무결성 (Domain integrity)
도메인 무결성은 테이블에 존재하는 필드의 무결성을 보장하기 위한 것으로 필드의 타입, NULL값의 허용 등에 대한 사항을 정의하고, 올바른 데이터의 입력 되었는지를 확인
4) 무결성 규칙 (Integrity rule)
데이터베이스에서 무결성 규칙은 데이터의 무결성을 지키기 위한 모든 제약 사항들
비즈니스 규칙 (business rule)은 데이터베이스를 이용하는 각각의 유저에 따라 서로 다르게 적용되지만, 무결성 규칙은 데이터베이스 전체에 공통적으로 적용되는 규칙
Q: 데이터베이스의 정규화는 왜 필요한가요? (절차와 함께 설명 해 주세요.)
A: 데이터베이스의 정규화는 데이터 중복을 최소화하고 무결성을 유지하기 위한 프로세스입니다. 이를 통해 데이터 저장 및 관리를 효과적으로 할 수 있습니다. 정규화의 주요 이유는 중복 제거, 데이터 무결성 향상, 쿼리 성능 향상, 테이블 구조의 명확성입니다.
정규화는 일반적으로 여러 단계를 거쳐 진행됩니다. 먼저, 제1 정규화에서는 각 컬럼의 도메인이 원자적인 값을 가져야 합니다. 그 후, 제2 정규화에서는 부분적 종속과 이행적 종속을 제거하여 테이블을 세분화하고, 제3 정규화에서는 이행적 종속을 제거합니다. 보이스-코드 정규화에서는 결정자가 후보키인 경우에 해당하는 테이블을 정규화합니다.
이러한 단계를 통해 데이터 모델을 명확하게 만들고, 데이터의 일관성을 유지하며, 쿼리 성능을 향상시킬 수 있습니다. 이는 데이터베이스의 효율적인 운영과 유지 보수에 도움이 됩니다.
데이터베이스란
데이터베이스 엔티티
데이터베이스 속성이란
Domain, Data Dictionary
필드 (데이터베이스)
레코드
키의 개념 및 종류
관계형 데이터베이스 설계
트랜잭션이란
관계형 데이터베이스 - 무결성