본문 바로가기

DB

[SQLD] 관계형 데이터베이스는 어떻게 시작됐을까?

반응형

관계형 데이터베이스 개요

SQLD 관계형 데이터베이스
SQLD 개념 정리

1. 많은 사람들이 하나의 데이터베이스를 관리하기 위해서 규칙이 필요했다. 각자 DB를 정리하는 방식이 다르기 때문이다. 통일성 때문에 규칙이 등장한 것이다. 

 

2. 엑셀의 등장. 릴레이션(relation)이 등장했다. 엑셀표를 보면 건축물 같이 생겼다. 이것을 구조화된 데이터(Structured Language)라 부른다. 

 

3. 표를 다룰 수 있는 언어가 탄생했다. DDL(표의 생성, 구조의 변경), DML(정보의 조회, 정보의 수정/입력 등)이 있다. DML에는 insert, delete, update, select 등이 있다. 

 

4. ◆ JOIN : 합친다. 연결한다. / 테이블을 합쳐서 필요한 데이터를 뽑아내야 하는 경우가 발생했다. 테이블과 테이블의 만남. 시험에 많이 나오는 개념이다. 

 

5. 개체 수준의 데이터가 아니라 그룹 수준의 데이터를 뽑아내야 하는 경우가 발생했다. '집약'해야 하는 것이다. 집약은 데이터들을 그룹화 해서 작게 만드는 것이다. (ex : 서울 지부의 총 입금액, 부산 지부의 총 입금액, 대구 지부의 총 입금액...)

◆ GROUP BY, HAVING 

 

6. 만약 한명의 은행원이 수기를 작성하고 있다고 가정해보자. 다른 은행원들은 그 종이에 작성할 수 없다. 비효율적이다. 동시에 접근해서 처리할 수 있다면 효율적이다. 그러나 데이터가 섞이거나 업데이트가 제대로 처리되지 않을 가능성이 있다. 그래서 TCL이라는 언어가 나왔다. 트랜잭션(입력)을 관리하는 언어다.  

 

7. 트랜잭션이 지녀야 하는 성질 (ACID 특성) 

 

① 원자성 : 0 또는 1이다. 100만원 입금했는데 은행 서버가 다운됨. 그럼 100만원 혹은 0원이어야 한다. 50만원만 입금되는 경우는 없다. 

 

② 일관성 : 잔고가 - 되지 않도록함. 잔고가 출금액보다 부족하면 출금이 안 됨

 

고립성 : 은행원 한명이 돈을 입금하는 과정에서 다른 은행원이 이에 개입할 수 없다. 

 

④ 지속성 : 100만원 입금했으면 100만원 상태가 지속되어야 함. 

 

※원일고지 

 

8. 데이터베이스 최고 관리자가 있다. 이 사람을 DBA라 부른다. DBA는 다른 관리자들에게 권한을 줄 수 있다. 이 명령어를 DCL(Data Controll Language)라고 한다. 

 

관계(Relation)란 무엇인가?

1. 관계(Relation)는 테이블을 의미한다. 릴레이션은 테이블이다. 

2. Relation = Table = Entity  ★

3. Attribute = Field = Column   세로줄, 열을 의미한다. 

 

관계형 데이터 베이스의 조직도

1. RDBMS(서버) - 오라클 

2. CLIENT(클라이언트) - SQL DEVELOPER 

3. 오라클의 특장점은 multi-user-based. 여러 유저가 하나의 데이터에 접근할 수 있다. 

4. 사용자가 서버에 데이터를 요청하면 서버는 데이터베이스에서 데이터를 가져와 보여준다. 

 

SQL 용어

1. Column Header : 각 컬럼에 표시된 이름 

2. Domain : 컬럼에 들어가는 문자에 제한을 걸어 줄 수 있다. 이것을 Domain 이라 부름. 

3. Row = Record = Tuple = Observation 

 

데이터 유형(Data Type)

1. 문자 / 숫자 / 날짜 - 3가지 유형이 있다. 

 

2. CHAR(n) : 고정 길이 문자열 정보에 해당. 기본 길이는 1바이트, n바이트의 길이로 정의한다. 할당된 문자열의 길이가 n보다 작으면 그 차이 길이만큼 공간으로 채워진다.

3. VARCHAR2(n) : VARYING CHAR의 약자이다. 기본 길이는 1바이트이며, n바이트의 길이가 한계(limit)이다. 가변길이로 조정이 되기 때문에 할당된 변수 값의 바이트만 적용된다. 

 

4. NUMBER(n,m) : 정수, 실수 등 숫자 정보. n길이의 숫자에 m길이 만큼의 소수점 자리를 포함한다. 

5. TINYINT / SMALLINT 등 : 정수, 실수 등 숫자 정보이다. (SQL SERVER)

 

6. DATE : 날짜와 시각 정보 / ORACLE : 1초 단위, SQL SERVER은 3.33ms 단위 관리 

 

문자 데이터 유형

1. 바이트(Byte) : 영어 문자, 특수기호, 숫자 모두 한 글자당 1바이트다. 한글은 한 글자당 2바이트다. 

2. CHAR(N) : 고정 길이 문자열이다. 칸이 만들어지고 거기에 글자가 채워지고 나머지는 공간으로 채워진다. 전화번호부에 사용됨. 

3. VARCHAR2(N) : 가변 길이 문자열이다. CHAR은 뭘 써도 N이다. VARCHAR(10)인데 7글자를 썼다면 7byte만 사용한다. 용량 면에서 훨씬 절약된다.  글, 댓글, 주소에 사용됨.  

 

숫자 데이터 유형

1. 숫자 데이터 유형은 숫자 데이터를 저장한다. 

2. NUMBER (4,2) : 4자리 숫자를 허용한다. 소수점은 2자리까지 쓸 수 있다. 

3. 시험에 매우 잘 나온다. 숫자 데이터 유형은 암기해야 된다. 

 

날짜 데이터 유형

1. 오라클에서 날짜 데이터는 고정된 길이의 7바이트 데이터로 저장된다. 

2. 정보 : 세기, 년, 월, 일, 시간, 분, 초다. 

 

SQL 명령문

1. RDBMS를 통해 데이터를 관리하고자 하는 목적 

2. 비절차적 언어다. 데이터를 어떻게 뽑아냈는지 말해주지 않음. 

 

SQL 명령문의 구성

1. 서술의 순서는 영어문법과 매우 유사하다.

선택하다. 무엇을? 어디에서? 조건은? 그룹으로 묶어서, ~을 갖는, 정렬해서 

 

2. 연산의 순서는 FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY

 

 

반응형