Hayden's Archive

[SQL] 데이터베이스 시스템 본문

Study/DB

[SQL] 데이터베이스 시스템

_hayden 2020. 5. 2. 18:31

 DBMS 일반 

- DBMS는 사용자가 데이터가 저장된 파일에 직접 접근할 수 없도록 데이터의 사용과 관리를 분리함. 파일 처리 시스템의 문제를 극복.

 

- 데이터베이스 시스템은 DBMS와 클라이언트의 역할, 데이터 접근/처리 방식에 따라 중앙집중식 데이터베이스 관리 시스템 구조, 2계층 클라이언트-서버 구조(2-tier architecture), 3계층 클라이언트-서버 구조(3-tier architecture)로 구분됨

 

- DBMS의 구조 : 데이터 추상화(data abstraction)와 데이터 독립성(data independency)을 확보하기 위한 3단계 구조(3-level architecture) => 외부 단계(external level), 개념 단계(conceptual level), 내부 단계(internal level) (오른쪽으로 갈수록 추상화 단계가 낮고 원시 수준(raw level))

 

- 데이터베이스 언어

(1) 데이터 정의 언어(DDL : Data Definition Language) : 스카마를 정의하기 위한 언어

(2) 데이터 조작 언어(DML : Data Manipulation Language) : 데이터 갱신과 질의를 표현. DDL에 의해 구조화된 데이터에 사용자가 데이터를 삽입, 수정, 삭제하고 저장된 데이터를 검색할 수 있도록 지원,

절차적(procedural) DML : 사용자가 필요한 데이터를 어떻게 구할 것인지를 구체적으로 명시

선언적(declarative) 또는 비절차적(nonprocedural) DML : 사용자가 요구하는 데이터가 무엇인지만 기술. 데이터가 만족해야 하는 조건만 기술하므로 절차적 DML보다 사용이 용이. But 처리 절차를 명시하지 않으므로 비효율적으로 처리될 수 있다는 단점.

 

- RDBMS(관계형 DBMS, Relational DBMS) : DBMS의 유형으로 계층형 DBMS(Hierarchical DBMS), 망형 DBMS(Network DBMS) 등이 있는데 그 중 현재 가장 많이 사용됨. MySQL, Oracle, MariaDB 등은 모두 RDMS임.

  · RDBMS에서 모든 데이터는 Table(=Relation=Entity)에 저장됨.

  · 테이블의 관계(Relation)를 기본 키(Primary Key)와 외래 키(Foreign Key)를 사용해서 맺어줌. 두 테이블을 부모와 자식의 관계로 묶어줄 수 있음.

  · 쉽게 변화에 순응할 수 있고 유지보수 측면에서도 편리. 대용량 데이터의 관리와 데이터 무결성의 보장.

  · 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려지는 단점

 

- SQL(Structured Query Language) : 데이터베이스에서 사용되는 언어.

  · DBMS 제작 회사와 독립적이다 -> 표준 SQL은 대부분의 DBMS 제품에서 공통적으로 호환됨 -> But 많은 회사가 되도록 표준 SQL을 준수하려고 노력하지만 각 회사의 DBMS마다 특징이 있기에 현실적으로 완전히 통일하기는 어려움. 표준 SQL을 사용하면 공통적으로 사용할 수 있고, 각 회사 제품의 특성에 맞춘 호환되지 않는 SQL문도 있음.

  · 다른 시스템으로 이식성이 좋다 -> SQL 표준은 서버용, 개인용, 휴대용 장비에서 운영되는 DBMS마다 상호 호완성이 뛰어남

  · 표준이 계속 발전한다 -> 지금도 개선된 안이 연구되고 보완되고 있다

  · 대화식 언어를 사용한다 -> 바로 질의하고 결과를 얻는 대화식 언어로 구성(기존 프로그래밍 언어는 프로그램 작성, 컴파일 및 디버깅, 실행의 과정을 거쳐야 결과 확인 가능)

  · 분산형 클라이언트/서버 구조 -> 클라이언트에서 질의하면 서버에서 그 질의를 받아서 처리하고 다시 클라이언트에게 전달

 


 

 MySQL 

참고) GNU GPL https://terms.naver.com/entry.nhn?docId=2078855&cid=42107&categoryId=42107

MySQL은 상업 라이선스와 오픈 소스 라이선스를 동시에 제공하는 이중 라이선스 정책을 시행하고 있음. 오픈 소스 라이선스는 GPL에 기반한 소스 코드 공개를 의무화하는 라이선스임. GPL 라이선스에 의해 MySQL 소프트웨어를 무료로 자유롭게 사용할 수 있으나 MySQL을 이용한 애플리케이션의 소스 코드 또한 무료로 공개해야 하는 의무가 주어짐.

 

- MySQL 워크벤치 : SQL 개발과 관리, 데이터베이스 설계, 생성 그리고 유지를 위한 단일 개반 통합 환경을 제공하는 비주얼 데이터베이스 설계 도구. 5.2부터 종합 데이터베이스 GUI 애플리케이션으로 발전

MySQL Server에는 데이터베이스를 관리하거나 자료를 관리하기 위한 GUI 기반의 DBMS 관리툴이 내장되어 있지 않으므로 이용자들은 명령 줄 인터페이스(CLI, Command-line interface) 도구들을 이용해야 함. 이러한 불편함을 제거하기 위해 오라클 사에서는 MySQL 워크벤치를 지원함.  

 

출처 1 : 방통대 교재 데이터정보처리입문 https://book.naver.com/bookdb/book_detail.nhn?bid=8940819

출처 2 : 이것이 MariaDB다 https://book.naver.com/bookdb/book_detail.nhn?bid=14684700