데이터베이스
일정한 규칙, 규약을 통해 구조화되어 저장되는 데이터의 모음
데이터베이스를 제어, 관리하는 통합 시스템을 DBMS라고 하며 데이터들은 특정 쿼리를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있습니다.
엔터티
사람, 장소, 물건, 사건 등 여러 개의 속성을 가진 명사를 의미합니다.
회원이라는 엔터티는 이름, 아이디, 전화번호 등의 속성을 가집니다.
서비스의 요구 사항에 맞춰 속성이 정해지며 서비스의 요구 사항과 무관하다면 속성은 사라지게 됩니다.
릴레이션
데이터베이스에서 정보를 구분하여 저장하는 기본 단위이며 엔터티에 관한 데이터를 데이터베이스는 릴레이션에 담아서 관리합니다.
릴레이션은 관계형 데이터베이스에서는 테이블이라고 하며, NoSQL 데이터베이스에서는 컬렉션이라고 합니다.
테이블과 컬렉션
데이터베이스의 종류는 크게 관계형과 NoSQL로 나눠집니다. 대표적으로 MySQL과 MongoDB가 있으며
MySQL은 레코드 - 테이블 -데이터베이스로 이루어져 있고
MongoDB는 도큐먼트 - 컬렉션 -데이터베이스로 이루어져 있습니다.
속성
릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보
회원이라는 엔터티의 속성을 보면 이름, 아이디, 전화번호 등의 속성을 가지고 있습니다.
만약 이중에서 서비스의 요구 사항을 기반으로 관리해야 할 필요가 있는 속성들만 엔터티의 속성이 됩니다.
도메인
릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합을 의미합니다.
성별이라는 속성이 있다면 이 속성이 가질 수 있는 값은 남, 여 라는 집합이 됩니다.
필드와 레코드
회원이라는 엔터티는 member 테이블로 속성인 이름, 이메일, 전화번호 등을 가지고 있고 각각 name, email, adress 등의 필드를 가집니다.
테이블에 쌓이는 행 단위의 데이터를 레코드라고 합니다.
필드 타입
이름은 문자열, 전화번호는 숫자라고 한다면 MySQL에서는 문자열은 VARCHAR과 같은 타입을 가지며 전화번호는 INT 등을 사용합니다.
관계
데이터베이스에는 여러 개의 테이블이 있고 이러한 테이블은 서로 관계가 정의되어 있습니다.
1 : 1 관계
어느 인기가 많은 식당이 있습니다.
만약 1인당 1메뉴를 시켜야하고 2개의 음식을 주문할 수 없게 정해두었다면 1 : 1 관계가 됩니다.
1:1 관계는 테이블을 두 개의 테이블로 나눠 테이블의 구조를 더 이해하기 쉽게 만들어 줍니다.
1 : N 관계
위와 반대로 한 사람이 여러 메뉴를 시킬 수 있다면 1:N 관계가 됩니다.
N : M 관계
학생은 많은 강의를 들을 수 있고 강의도 여러 명의 학생을 포함할 수 있습니다.
N:M 관계는 테이블 두 개를 직접적으로 연결하지 않고 1:N , 1:M 관계를 가지는 테이블을 두 개로 나눠서 설정합니다.
키
테이블 간의 관계를 조금 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치로 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있습니다.
기본키
PK 또는 프라이머리키라고 불리며, 유일성과 최소성을 만족하는 키입니다.
외래키
FK라고 불리며 다른 테이블의 기본키를 참조하는 값으로 개체와의 관계를 식별하는데 사용합니다.
'CS' 카테고리의 다른 글
[CS] REST API (0) | 2023.04.17 |
---|---|
[CS] 프로세스와 스레드 (0) | 2023.04.13 |
[CS] 디자인 패턴 (0) | 2023.02.20 |
[CS] HTTP, HTTPS (0) | 2023.02.20 |
[CS] Cors와 허용 방법 (0) | 2023.02.07 |
댓글