본문 바로가기
프로그래밍 언어/SQL - MySQL

2020/12/08 공부 - DBMS & SQL

by UltraLowTemp-Physics 2020. 12. 8.
728x90

데이터 베이스란? 

1. 데이터 베이스의 정의

여러 사람에게 공유되어 사용될 목적을 가지고, 구조적인 방식으로 관리되는 데이터의 집합을 의미함 
서로 연관된 정보의 중복을 최소화하여 한곳에 저장함으로써, 다수의 사용자가 필요한 정보에 효율적으로 접근할 수 있게 한 정보의 집합체 
 데이터의 저장 공간 그 자체를 의미하기도 함
  - MySQL에서는 데이터베이스를 자료가 저장되는 디스크 공간으로 취급함

- 데이터 베이스 용어의 유래 
데이터 베이스라는 용어가 처음 사용된 것은 1963년 6월 산타모니카에서 열린 미국 SDC (System Development Corporation)이 개최한 심포지엄이었다. 당시 데이터 베이스란 개념은 단순히 자기테이프 같은 보조 기억장치에 저장된 자료 파일의 의미였다. 현대적 의미의 데이터 베이스 개념을 확립한 사람은 제너럴 일렉트릭사에 있던 C.바크만이다.

 

- 데이터 베이스의 관리
: 데이터 베이스 관리 시스템을 통해서 이루어짐
 * 데이터 베이스 관리 시스템(DBMS: Database Management System) 
- 대표적인 DBMS: Oracle, MySQL, MsSQL, Teradata, SyBase

많이 사용되는 DBMS

DBMS 제작사 최신버전 특징
Oracle Oracle 18c - 상용 DBMS 
- U/L/W 
SQL Server Microsoft 2019 - W
BD2 IBM 12 - 메인 프레임 시장 점유율 1위
- U/L/W 
Access Microsoft 2019 - PC용 DBMS
SQLite SQLite 3 - 모바일 전용
- 오픈 소스
MySQL Oracle 8.0 - 오픈소스 
- U/L/W/M
MariaDB MariaDB 10.4 - 오픈소스

- U: Unix, L: Linux, W: Windows, M: Mac


- 데이터 베이스의 특징

특징 설명
실시간 접근성 
(Real Time Processing)
컴퓨터가 접근할 수 있는 저장장치에서 관리되는 데이터 베이스는 지속적이고 비정형적인 질의에 대해서 실시간 처리가 가능하여야 함 
지속적인 변화
(Continuous Evolution)
- 데이터 베이스의 상태는 동적이다. 
- 기존 데이터에 새로운 데이터의 삽입, 삭제 및 갱신이 이루어진다. 
동시 공용
(Concurrent Sharing)
- 데이터 베이스는 다수의 사용자가 동시에 각자 원하는 데이터에 접근할 수 있어야 함. 
내용에 의한 참조
(Contents Reference)
- 데이터 베이스 환경에서 데이터 참조는 레코드의 주소나 위치에 의해서가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터가 가지고 있는 값에 따라 참조됨

1) 데이터 무결성 
 - 데이터베이스 내의 데이터는 오류가 있어서는 안된다. 
 - 무결성을 위해서 데이터 베이스는 제약 조건이라는 특성을 가짐 

2) 데이터의 독립성 
 - 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용 프로그램은 영향을 받아선 안된다. 

3) 보안
 - 데이터 베이스 내부의 데이터는 데이터를 소유한 소람 혹은 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다. 

4) 데이터 중복의 최소화 
 -
동일한 데이터가 여러 개 중복되어 저장되는 것을 방지 

DBMS 분류 
(1) DBMS의 유형: 
   - 계층형 (Hierarchical) DBMS
   - 망형 (Network) DBMS
   - 관계형 (relational) DBMS
   - 객체지향형 (Object-Oriented) DBMS 
   -.... 
(2) 계층형 DBMS 
   - 각 계층은 트리 형태를 가지며, 1:N 관계를 가짐 
   - 장점: 주어진 상태에서의 검색이 상당히 빠름 
   - 문제점:
     • 처음 구축한 이후에는 그 구조를 변경하기 어려움 
     • 접근의 유연성이 부족하므로 임의의 검색에는 어려움이 존재  
(3) 망형 DBMS 
   - 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 시작됨 
   - 1:1, 1:N, M:N 관계가 지원됨 
   - 문제점: 매우 복잡한 내부 포인터를 사용하므로 프로그래머가 이 구조를 이해해야만 프로그램의 작성이 가능 
(4) 관계형 DBMS 
   - 1969년 E.F.Codd라는 학자가 고안한 수학모델에서부터 시작 
   - 장점:
    • 다른 DBMS에 비해서 업무가 변화될 경우에 쉽게 변화에 순응할 수 있는 구조 
    • 유지보수 측면에서 편리한 기능을 가짐 
    • 대용량 데이터의 관리와 데이터 무결성의 보장을 잘 해줌 
  - 단점: 
    • 시스템 자원을 많이 차지하여 시스템이 전체적으로 느려지는 것 
      -- 하지만, 하드웨어의 급속한 발전으로 단점들이 많이 보완됨 

 

 

데이터 베이스 용어

용어 설명
테이블
(Table)
- 구조화된 엑셀 스프레드시프트와 동일 
- 테이블의 이름은 고유해야한다. 
스키마
(Schema)
- 테이블에 데이터가 저장되는 방식을 정의 
- 데이터 베이스에 존재하는 자료의 구조 및 내용과 자료들의 논리적, 물리적 특성에 대한 정보를 표현하는 데이터 베이스의 논리적 구조를 지칭함 

(Column)
- 테이블을 구성하는 각각의 정보 
- 데이터 베이스의 각 열에는 고유한 데이터 형식이 지정됨 
- 데이터 형식: 정수, 문자, 통화, 날짜 및 시간,...
행 
(Row)
- 테이블의 데이터가 저장되는 곳 
- 테이블의 행을 레코드라 불리기도 함 
기본키
(Prime Key)
- 테이블 내에서 각 행을 고유하게 하는 열 
- 기본키는 테이블 생성시 반드시 필요함 
- 기본키는 중복되서는 안되며, 비어있어도 안됨 
외래키 
(Foreign Key)
- 두 테이블의 관계를 맺어주는 키 

 

SQL

- SQL이란 
(1) SQL: Structured Query Language 
(2) 사용자와 데이터 베이스 시스템 간의 의사소통을 위해 고안된 언어 
   -- 대화식 언어
(3) 관계형 데이터 베이스 모델의 규칙에 따라 정의되어 있으므로 관계형 데이터 베이스 언어라고 불리기도 함 
(4) 분산형 서버/클라이언트 구조 
(5) SQL 표준 산업화를 추진하는 기구 
   -- ANSI (American National Standard Institute)
   -- ISO (International Standards Organization)  
 

 

SQL 문의 종류

sql문은 아래와 같이 DDL, DML, DCL로 나뉘어진다.

종류 설명
데이터 정의어
(DDL)
- 데이터와 그 구조를 정의하는 언어
- 데이터 베이스, 테이블, 뷰, 인덱스 등의 데이터 베이스 개체를 "생성/삭제/변경"하는 역활
- DDL에서는 트랜잭션이 발생하지 않으며, 실행 즉시 DB에 적용된다.
- CREATE: 데이터 베이스 테이블 생성
- DROP: 데이터 베이스 테이블 삭제
- ALTER: 기존 데이터 베이스 테이블 재정의
데이터 조작어 
(DML)
- 데이터 검색과 수정 등의 처리를 위한 언어
- INSERT
- DELETE
- UPTATE
- SELECT
데이터 제어어
(DCL)
- 데이터베이스 사용자의 권한 제어를 위해 사용되는 언어
- GRANT
- REVOKE
- DENY 

 

- SQL의 특징
(1) SQL은 소문자와 대문자를 구분하지 않음 
  -- 다만, 가시성을 위해서, 키워드는 대문자로 입력하고 열이름 및 테이블은 소문자로 입력함 
(2) SQL은 공백을 무시함 
(3) SQL의 키워드를 열 이름으로 사용하면 바로 에러가 발생함 
  -- 키워드는 SQL 언어로 사용되므로, SQL 키워드를 열의 이름으로 할 경우 에러가 발생함 
(4) SQL 문장은 세미콜론(;)을 사용하여 종결함 

MySQL의 주석처리

1) MySQL은 '--'이후부터 주석으로 처리가 됨 
2) 주의할 점은 -- 뒤에 바로 붙여쓰는 것이 아니라 공백이 하나 이상 있어야 함 
3) 여러 줄을 주석처리하는 경우, /* */로 묶는다. 

728x90

댓글