1. 데이터베이스(Database)
개념
- 체계적으로 구조화된 데이터의 모음
- 여러 사용자나 응용 프로그램이 공유하여 사용할 수 있는 데이터를 저장하고 관리하는 시스템
역할
- 데이터의 효율적인 관리, 검색, 조작
- 데이터의 일관성, 무결성, 보안 유지
2. 엔티티(Entity)
개념
데이터베이스에서 특정 객체, 사물, 개념 등을 나타내는 추상적인 개념
ex. 객, 제품, 주문과 같은 실세계의 개체나 개념
구조
3. 릴레이션(Relation)
개념
데이터베이스에서 테이블을 의미
구조
- 릴레이션은 행과 열의 조합으로 구성됨
- 각 행은 엔티티의 인스턴스를, 각 열은 속성(Attribute)을 나타냄
4. 속성(Attribute)
개념
엔티티의 특성이나 데이터의 특징을 나타냄
ex. '고객' 엔티티의 속성: 이름, 주소, 전화번호 등
구조
- 속성은 릴레이션의 열(Column)에 해당
- 데이터베이스 테이블의 각 필드에 해당하는 정보를 담음
5. 도메인(Domain)
개념
- 속성이 가질 수 있는 값의 범위를 정의하는 것
- 각 속성은 특정한 도메인을 가지며, 해당 도메인 내에서만 유효한 값들을 가질 수 있음
ex. '나이' 속성의 도메인은 0 이상의 양의 정수만 입력 가능
중간정리
💡 데이터베이스는 여러 개의 엔티티들로 구성되며, 각 엔티티는 릴레이션으로 표현되고 속성들을 가집니다. 이 때, 속성들은 특정 도메인 내의 값들로 제한됩니다.
6. 필드
개념
- 데이터베이스 내에서 하나의 정보 조각을 나타냄
- 각 필드는 특정한 데이터 유형(데이터 타입)을 가질 수 있으며, 엔티티의 특징을 나타냄
ex, 이름, 나이, 주소
7. 레코드
개념
- 데이터베이스 내에서 하나의 데이터 엔트리를 나타냄
ex. 고객 테이블의 레코드: 특정 고객의 정보를 포함
8. 데이터 타입
개념
예시
CREATE TABLE Customer (
CustomerID INT,
Name VARCHAR(50),
Age INT,
Email VARCHAR(100)
);
Text와 BLOB
공통점
큰 데이터를 저장할 때 쓰는 타입
차이점
- Text: 큰 문자열 저장에 사용, 주로 게시판의 본문!
- BLOB: 이미지, 동영상 등 큰 데이터 저장에 쓰임
👉 잘 안쓰임. 일반적인 경우 이미지 호스팅 서비스에 파일을 올리고 해당 경로를 VARCHAR로 저장해 이미지 표시
9. 관계
예시
1:1 관계
유저 당 한 개의 이메일을 가질 때
1:N 관계
유저 당 여러 개의 상품을 가질 수 있을 때
N:M 관계
학생과 강의가 있을 때, 학생도 여러개의 강의를 들을 수 있고 강의도 여러명의 학생을 수용할 수 있을 때
10. 키
개념
테이블 간 관계를 명확하게 하고 인덱스 설정을 위해 있는 장치
종류
🙋♀️ 유일성: 중복되는 값이 없어야함
🙋♀️ 최소성: 필드를 조합하지 않고 최소 필드만 사용하여 키 형성!
⭐ 외래키
- 한 테이블의 칼럼이 다른 테이블의 기본키를 그대로 참조하는 값
👉 개체와의 관계를 식별하는데 사용
- 데이터를 보호하고 정상적인 상태를 유지하는 무결성을 보장할 수 있음