오늘 배운 것
Database & SQL Basic
SQL
- Structured Query Language의 약자
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 프로그래밍 언어
- 데이터베이스에
qeury
를 보내서 원하는 데이터만을 취할 수 있다.
What is Query
- 직역하면 "질의문"
- 검색창에 적는 검색어도 Query의 일종
- 저장되어있는 정보를 필터하기 위한 질문
Why need Database?
- in-memory : 끄면 데이터가 사라짐
- File I/O : 항상 모든 데이터를 가져온 뒤 서버에서 필터링 과정을 거쳐야 함
- Database : 필터링 외에도 File I/O로 구현이 힘든 여러 기능들을 가지고 있는 데이터에 특화된 서버
RDBMS(관계형 데이터베이스 관리 시스템)
- 관계형 데이터베이스는 키(key; column)와 값(value; row)의 관계를 테이블 형식으로 나타낸 것이다.
- 하나의 데이터베이스 안에는 여러 개의 테이블이 존재할 수 있으며 이들은 유의미한 관계를 맺을 수 있다.(이름이 관계형데이터베이스인 이유)
- 테이블(Table; Entity) 안에는 컬럼(Column; Attribute; Field)과 로우(Row; Record; Tuple)이 존재한다.
- 테이블은 1:1(일대일), 1:N(일대다), N:M(다대다)과 같은 관계를 가질 수 있다.
관련용어 정리
-
스키마(Schema)는 DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 구조.
- 1.개체의 특성을 나타내는 속성(Attribute; column), 2.속성들의 집합으로 이루어진 개체(Entity; Table), 3. 개체 사이에 존재하는 관계(Relation)에 대한 정의, 4.이들이 유지해야 할 제약조건들을 기술.
-
외부, 개념, 내부 스키마로 나뉘며 보통 개념 스키마를 스키마라 부른다.
- 위 그림은 일반적인 데이터베이스의 4계층 구조이다.
- 하지만 MySQL의 경우 위와 같이 데이터베이스가 사라진 것을 볼 수 있으며, 스키마가 데이터베이스와 동의어로 사용된다.
CREATE SCHEMA test DEFAULT CHARACTER SET utf8;
CREATE DATABASE test DEFAULT CHARACTER SET utf8;