
데이터베이스의 필요성
- In-Memory
- File I/O
- 쿼리(query) :질의문
- SQL(관계형 데이터베이스) : 구조화된 테이블을 사용
- 데이터베이스 용 프로그래밍 언어(데이터베이스에 쿼리를 보내 원하는 데이터만을 가져올 수 있게 함)
- NoSQL : 구조가 고정되어 있지 않은 데이터베이스
- DDL : 데이터를 정의
- DML : 데이터를 저장할 때 사용되는 언어
- DCL : 접근 권한과 관련된 문법
- DQL : 스키마 내에서 쿼리를 할 수 있는 언어
- TCL : DML 을 거친 데이터 변경사항을 수정
- 스키마 : 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
- 개체의 특성을 나타내는 속성(Attribute)
- 속상들의 집합으로 이루어진 개체(Entity)
- 개체 사이에 존재하는 관계(Relation)
관계형 데이터베이스
- 데이터 : 각 항목에 저장되는 값
- 테이블 (혹은 relation) : 사전에 정의된 행과 열로 구성되어 있는 체계화된 데이터
- 필드 (혹은 column) : 테이블의 열
- 레코드 (혹은 tuple) : 테이블의 한 행의 저장된 정보
- 키 : 테이블의 각 레코드를 구분할 수 있는 값
관계 종류
- 1:1 관계 : 테이블의 레코드 하나당 여러 개의 레코드와 연결되어 있는 경우
- 한 개의 전화번호당 한 명의 유저를 가지고 그 반대도 동일하다면 이것은 1:1 관계
- 1:N 관계 : 테이블의 레코드 하나당 여러 개의 레코드와 연결되어 있는 경우
- 한 유저가 여러 개의 전화번호를 가질 수 있지만 그 반대는 성립할 수가 없다.
- N:N 관계 : 양방향에서 다수를 가질 수 있는 경우
- 여러 개의 여행 상품이 있고 여러 명의 고객들이 있을 때 한 고객은 여러 개의 여행 상품을 사용할 수 있고 마찬가지로 한 여행 상품은 여러 명의 고객을 가질 수 있다.
- 자기참조관계 : 한 유저당 한 명의 추천인을 입력할 수 있다.
- 하지만 추천인 입장에서는 여러 개의 유저를 가질 수 있다.
- 엔티티(Entity) : 컬럼 name?
- 필드(Field) : 행?
- 레코드(record) : 열?
기본 명령어
- SELECT
- FROM
- WHERE
- ORDER BY
- LIMIT
- DISTINCT
- INNER JOIN
- OUTER JOIN