SiLaure's Data

[DB] 02. 관계형 데이터베이스(Relationship Database - RDB) 본문

Records of/Learning

[DB] 02. 관계형 데이터베이스(Relationship Database - RDB)

data_soin 2021. 8. 4. 15:57

 

1. 관계형 데이터베이스

  • 2차원 표, 목록(Excel, Google SpreadSheet)
  • Key와 Value들의 간단한 관계를 테이블화 한 것

 

 

- 관계형 모델

: 집합론에 기반을 둔 데이터베이스 모델

  • 하나 이상의 테이블 존재, 테이블에 정보 저장.
  • 각각의 로우(행)을 식별하는 기본키가 잆음(Primary Key)
행 : 컬럼(Column), 필드(Field), 속성(Attribute)
열 : 로우(Row), 레코드(Record), 튜플(Tuple)

 

 

2. SQL 기초 지식

- SQL(Structured Qurery Language)

: DBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어(관계형 DBMS)

- 장점

  • 일반 프로그래밍 언어에 비해 간결하다.
  • 간단한 영어 문장 사용
  • 기본 조작 명령어(Select, Insert, Update, Delete)

 

- 테이블, 행, 열

  • 테이블(Table) : 데이터를 관리하는 유일 단위, 2차원 표
                 
                 
                 

 

  • 행(Row) : 가로축, 한 개의 라인
 
 
 

 

  • 열(Culomn) : 세로축
                   

 

 

-  SELECT

e.g. 연락처가 이메일인 고객 찾기

SELECT * FROM 고객연락처
WHERE 연락처구분 = '이메일'
	AND 연락처 NOT LIKE '@%'
    AND 연락처 NOT LIKE '%@'
    AND 연락처 LIKE '%@%'
;

 

-  INSERT

INSERT INTO 고객연락처
		(순번, 고객아이디, 고객명, 연락처구분, 연락처)
       VALUES(7, 'datasoin', '윤땡땡', '이메일', 'data-soin@naver.com')
;

 

-  UPDATE

UPDATE 고객연락처
	SET 연착처 = 'soinsoin@naver.com'
    WHERE 순번 = 1
;

 

-  DELETE

DELETE FROM 고객연락처 WHERE 순번 = 1 ;

 

 

3. 관계형 데이터베이스를 다루기 위한 사전 지식

 

- 데이터베이스 vs. DBMS

  • 데이터베이스 : 추상적
  • DBMS : 실체적, 구체적 SW

 

 

- 일반적인 IT 시스템이 탄생하는 과정

  1. DBMS와 여러 SW의 연동으로 IT 시스템이 구축 됨.
  2. 이러한 과정을 SI(System Integration)라고 함.

3-Tier 구조

 

 

- 운영체제의 종류

  • Windows
    • GUI(Graphic User Interface)에 의한 직관적 조작이 가능
    • 소비자용으로 가장 널리 사용됨
  • Linux, Unix
    • 주로 비즈니스용으로 사용됨
    • IT 시스템의 서버용으로 많이 사용됨
  • iOS, Android

 

 

- DBMS와 운영체제

: DBMS는 다양한 운영체제와의 조합으로 구축이 가능하다.

IT 예산, 제품의 기능 및 용도, 개발자와 엔지니어의 기술 스펙 등 고려해야 할 요소가 많다.

 

 

-  DBMS의 마이그레이션

  1. DBMS 제품은 동일하고 OS만 바뀌는 경우
    • DBMS의 수정이 적음
    • 공수가 많이 들지 않음
  2. OS 제품은 동일하고 DBMS만 바뀌는 경우
    • DBMS의 관련 작업이 많음
    • 보통의 공수가 들어감
  3. OS 제품 및 DBMS가 모두 바뀌는 경우
    • DBMS의 관련 작업이 많음
    • 매우 많은 공수가 들어가고 리스크가 큼

 

 

-  애플리케이션(Application)

  • 직접 개발
    • JAVA, C  등으로 직접 구현
    • 개발 비용이 매우 높음
    • 고객(사용자)의 디테일한 요구사항 수용 가능

 

  • 솔루션 구매
    • 솔루션 등 기존 소프트웨어의 구매
    • 개발 비용이 절감되지만 소프트웨어 구매 비용이 발생함
    • 디테일한 요구사항 수용 불가
    • 커스터마이징을 위해서는 추가비용이 들어감

 

 

 

Comments