일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CI/CD
- Cypress
- webpack
- 인터섹션
- SSR
- tailwind
- 이분 검색
- Promise
- 호이스팅
- React
- map
- RTK Query
- CORS
- 타입 좁히기
- 리터럴 타입
- 투포인터
- 무한 스크롤
- ESlint
- autosize
- TS
- 결정 알고리즘
- app router
- recoil
- 공변성
- async/await
- dfs
- 태그된 유니온
- 반공변성
- useAppDispatch
- Jest
- Today
- Total
짧은코딩
데이터베이스-엔티티, 릴레이션, 속성, 도메인, 필드와 레코드 본문
데이터베이스(DataBase)는 일정한 규칙, 규약을 통해 구조화되어 저장된 데이터 모음이다. DBMS(DataBase Management System)는 DB를 제어, 관리하는 통합 시스템이다. DB 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어(query language)를 통해 삽입, 삭제, 수정, 조회 등이 가능하고 DB는 실시간 접근, 동시 공유가 가능하다.
예를 들어 MySQL이라는 DBMS가 있고 Node.js, php 같은 응용 프로그램에서 DB안에 있는 데이터를 꺼내 데이터 관련 로직을 구축할 수 있다.
엔티티(entity)
엔티티는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다. 엔티티는 서비스 요구 사항에 맞춰 속성이 정해진다. 만약 주소라는 속성이 요구 사항과 무관한 속성이면 주소 속성은 사라진다.
-약한 엔티티와 강한 엔티티
A가 혼자서는 존재하지 않고 B가 있어야 존재하면 A는 약한 엔티티이며 종속적이다. 반대로 B는 강한 엔티티이다.
예를 들면 '방'과 '건물'이 있으면 '방'이 약한 엔티티이고 '건물'이 강한 엔티티이다.
릴레이션(relation)
릴레이션은 DB에서 정보를 구분하여 저장하는 기본 단위이다. 엔티티에 대한 데이터를 릴레이션에 담아서 관리한다.
위 사진처럼 회원이라는 엔티티가 있으면 DB 안에서 관리될 때 릴레이션으로 변경해서 관리한다. 릴레이션은 관계형 DB에서 테이블이라고 하고 MySQL DB에서는 컬렉션이라고 한다.
-테이블과 컬렉션
DB 종류는 크게 관계형 DB와 MySQL DB로 나눌 수 있다. 대표적인 관계형 DB인 MySQL은 레코드가 모여서 테이블을 만들고, 테이블이 모여서 DB를 만든다. 또 다른 대표적 DB인 NoSQL의 데이터 베이스인 MongoDB는 도큐먼트가 모여 컬렉션을 만들고, 컬렉션이 모여서 DB를 이룬다.
속성(attribute)
속성은 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보이다. 예를 들어 '자동차'에서 엔티티 속성을 뽑으면 차 번호, 색, 차종 등이 있다. 이 중에서 서비스 요구 사항을 통해 관리해야 할 필요가 있는 속성들이 엔티티 속성이다.
도메인(domain)
도메인은 릴레이션에 포함된 속성들이 가질 수 있는 값의 집합이다. 만약 성별이라는 속성이 있으면 {남, 여}가 도메인이 된다.
필드와 레코드
위 사진은 회원이란 엔티티를 member라는 테이블로 만들었다. 그리고 속성은 이름, 아이디, 주소, 전화번호 등을 가지고 있고 name, ID, address 등의 필드를 가진다. 테이블의 행(row) 단위의 데이터를 레코드(혹은 튜플)라고 한다.
-엔티티를 DB에 넣어 테이블로 만드는 법(MySQL 기준)
- 정수형: INT
- 문자형: VARCHAR(길이)
- 시간: DATETIME
이런식으로 코드 작성을 할 수 있다.
'CS > 데이터베이스' 카테고리의 다른 글
인덱스 (0) | 2022.12.20 |
---|---|
데이터베이스의 종류 (0) | 2022.08.27 |
트랜잭션과 무결성 (1) | 2022.08.17 |
ERD와 정규화 과정 (0) | 2022.08.04 |
관계, 키 (0) | 2022.07.19 |