개인 학습을 위해 아래 docs 및 추가 자료를 참조해 작성한 기록 포스팅입니다.
http://bigdata.dongguk.ac.kr/lectures/DB/_book/MySQL1.html
여러 응용프로그램 또는 사용자들이 공유|이용 할 수 있도록 체계적으로 통합, 저장한 데이터들의 집합
쉽게 데이터들을 저장하고 조회하는 프로그램이라 이해할 수 있다.
데이터베이스가 구조적인 형태를 유지하며 데이터를 저장하기 위해 아래와 같은 데이터 저장 규칙이 있다.
통합된 데이터 (Integrated Data)
여러가지 데이터를 통합해 저장하는데 중복된 정보를 그대로 저장하면 용량 낭비가 발생한다. 따라서 데이터베이스는 중복된 정보에 대해 데이터를 통합하여 자료의 중복을 최소화하고자 한다.
저장된 데이터 (Stored Data)
컴퓨터가 접근할 수 있는 매체에 데이터를 저장한다.
운영 데이터 (Operational Data)
데이터베이스는 주로 조직의 목적을 위해 존재하고 활용되는 운영 데이터를 다루는데 이용된다.
ex) 쇼핑몰의 판매량이나 재고량 등
공유 데이터 (Shared Data)
여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터이다. 데이터베이스라는 sw 를 사용하는 가장 근본적인 이유가 된다. 하나의 컴퓨터나 시스템을 위한 데이터가 아니라 여러 시스템들이 공용으로 액세스하여 이용한다.
- 최소한의 중복 (minimal redundancy) 만을 허용하는 통합 데이터(intergrated data)
- 실시간 접근성 (Real-Time Accessibility) : 데이터베이스는 사용자의 요구에 신속 정확하게 응답이 가능해야 한다. (검색, 주문 등의 작업)
- 지속적이고 동적인 변화 (Continuous Evolution) : 데이터의 Insert, Delete, Update 로 항상 최신의 데이터를 유지해 현실세계를 반영한다.
- 실제 데이터에 의해 참조 가능 (Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 사용자의 요구에 따른 데이터 내용으로 데이터의 위치나 주소를 찾음. (주소 x)
- 동시 공용 (Concurrent Sharing) : 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다. (여러 고객이 같은 상품을 동시에 주문)
- 지속적인 데이터 관리와 보호 가능
- 안정성을 보장 가능
- 무결성을 보장 가능
데이터베이스를 관리하기 위해 필요한 sw패키지 집합체
주요 기능
- 데이터의 추가/조회/변경/삭제
- 데이터의 무결성 체크
- 트랜잭션 관리
- 데이터의 백업 및 복원
- 데이터 보안 관리
1) 파일시스템 (ISAAM, VSAM)
2) 계층형(Hierahical) HDBMS (IMS, System2000)
3) 네트워크형 (Network) NDBMS (IDS, TOTAL, IDMS)
4) 관계형 (Relational) RDBMS (Oracle, My-SQL, DB2, SQL Server, Sybase..)
6) NO SQL (Not Only SQL)
분석을 위하여 여러 개의 데이터 저장소들에 흩어져 있는 각종 데이터를 하나의 저장소로 모은 데이터베이스
DB 의 구성 요소 중 테이블이 가장 중요. 이 외에도 여러 종류의 자료 형태가 존재하는데, 이러한 DB를 구성하는 개별 단위 요소를 객체(Object) 라고 한다.
항목 | 설명 |
---|---|
테이블 | 행과 열로 구성된 2 차원적인 표 |
시퀀스 | 정수형 번호표 생성기 |
인덱스 | 데이터 검색 속도를 향상시키기 위한 자료 구조 |
프로시저 | 반한 타입이 없는 객체 |
함수 | 반환 타입이 있는 객체 |
✅ relation data model 용어
tuple (튜플, 레코드)
attribute (속성, column, 통계데이터에서는 variable)
table schema
database schema
key : 테이블에서 특정 튜플을 식별 가능하게 하는 속성의 집합.
DBMS 를 다루기 위한 표준언어, 응용프로그램과 DBMS 사이의 중간 다리 역할 담당
✅ SQL 의 역할 분류
SQL은 (1)DBMS 를 제어, (2)데이터를 정의, (3)데이터를 조작으로 분류할 수 있으며 각 역할에 따라 SQL은 세가지 언어로 구성
1. DCL (Data Control Language, 데이터 제어 언어)
1) DB 에서 데이터 액세스를 제어
2) 데이터베이스에 접근하고 객체들을 사용하도록 권한부여(GRANT
) 또는 회수(REVOKE
)하는 명령어
2. DDL (Data Definition Language, 데이터 정의 언어)
1) 데이터의 저장 구조를 정의하는 언어 (테이블 등)
2) DB스키마, 테이블스키마를 정의, 수정, 삭제/인덱스의 생성 및 삭제를 (CREATE
: 생성,ALTER
: 변경,DROP
: 삭제,RENAME
: 이름변경,TRUNCATE
)
DROP vs TRUNCATE
TRUNCATE
DROP
처리속도 빠름(한 줄씩 처리하는 DELETE
보다)빠름 commit 자동 자동 Rollback 가능 여부 불가 불가 OUTPUT 테이블을 CREATE 한 직후 상태로 되돌림 테이블까지 삭제
3. DML (Data Manipulation Language, 데이터조작 언어)
1) 데이터에 접근 및 조작하는 언어
2) 튜플의 검색, 삽입, 삭제 수정과 같은 명령문
SELECT
: 데이터 조회 명령어로 RETRIEVE 라고도 함INSERT
UPDATE
DELETE
: 데이터에 변형을 가하는 명령어 (삽입, 수정, 삭제) )
4. TCL (Transaction Control Lanquage, 트랜잭션 제어어)
1) 논리적인 작업의 단위를 묶어서 DML 에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어
COMMIT
ROLLBACK
SAVEPOINT
✅ SQL 역할별 구문 작성법
1. SQL 데이터 제어문: 데이터베이스 객체 이용권한 부여
- GRANT - DENY - REVOKE GRANT CREATE TABLE TO '사용자 계정'
2. SQL 데이터베이스/테이블 정의문 : DB 객체 생성, 삭제, 수정
- CREATE : 생성 - DROP : 삭제 - ALTER : 수정 CREATE DATABASE [데이터베이스_이름]
3. SQL 데이터 조작문 : 테이블 검색, 삽입, 갱신, 삭제
- SELECT - INSERT - UPDATE - DELETE
https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B8%B0%EC%B4%88-%EA%B0%9C%EB%85%90
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=idjoopal&logNo=221559099309