Database와 관계형 데이터베이스, SQL을 알아보자
FE BE 개발 메모장/SQL & DataBase

Database와 관계형 데이터베이스, SQL을 알아보자

SQL이란?

Structured Query Language 의 약자로 구조화 된 Query 언어를 말한다.

 

Query란?

번역하면 질의문을 뜻한다. 저장되어 있는 정보를 필터링 하기 위한 질문이다.

 

결국, SQL은 데이터베이스용 프로그래밍 언어이고, 데이터베이스에 Query를 보내 원하는 데이터를 가져올 수 있다.

 

데이터베이스는 왜 필요할까?

 

In_Memory

DB를 사용하기 전에는 데이터를 클라이언트나 서버에 저장해 두게 된다. 만약 서버나 클라이언트가 종료되면, 안에 저장되 있던 정보들은 모두 사라진다. 

File I/O

원하는 데이터만 가져올 수 없고, 항상 모든 데이터를  가져온 뒤 서버에서 필터링이 필요하다. for loop문을 사용해 필터링을 하게 되면 서버의 부하가 많이 걸리게된다.

 

Database

데이터 베이스는 여러 사람이 공유하여 사용할 목적으로 쳬계화 해서 통합, 관리하는 데이터의 집합이다. 그리고 필터링 외에도 File I/O로 구현이 힘든 데이터 관리를 위한 여러 기능들을 가지고 있는 데이터에 특화된 서버이다.

 

관계형 데이터베이스

관계형 데이터 베이스는 데이터를 테이블 형태로 저장한다. 쉽게 생각하면 엑셀 표에 데이터를 저장 하는 것과 동일하다고 생각하면 된다. 각 데이터 항목들은 행(row)에 저장되고, 항목의 속성은 열(column)이라고 한다. 

 

열(column): 필드(field) 또는 속성(attribute)라고 부르며, 유일한 이름과 각각 자신만의 타입을 가지고있다.

 

행(row): 튜플(tuple) 또는 레코드(record) 라고도 부르며, 각 데이터 항목을 저장한다.

 

키( key)

테이블에서 행의 식별자로 이용되는 열을 키(Key) 또는 기본 키(primary key)라고 한다.

 

스키마(schema) : 테이블을 디자인하기 위한 청사진이라 볼 수 있다. 스키마는 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래키 같은 제약사항을 걸어두어야 한다.

 

관계(relationship)

 

테이블과의 관계는 관계를 맺는 테이블의 수에 따라 아래와 같이 나뉜다.

1. 일대일 (1 : 1) 관계

2. 일대다 (1 : N) 관계

3. 다대다 (N: N) 관계