Database(데이터베이스)

- 데이터의 집합

- 관련있는 대용량의 데이터 집합들을 체계적으로 구현해 놓은 것

- 여러명 사용 가능, 데이터 처리, 여러 개의 Database 관리 가능

- DBMS(Database Management System) : 데이터베이스를 운영, 관리 하는 Software

 

 

MySQL Oracle, 무료, 유료
MariaDB MariaDB, 무료
Oracle Oracle, 상용 시장 점유율 1위
DB2 IBM, 메인 프레임 시장 점유율 1위
SQL Server Microsoft, 중/대형급 시장 사용
PostgreSQL PostgreSQL, 무료

 

DBMS(Database Management System) 특징

(1) 무결성 : 데이터의 오류 X, constraints(제약 조건)

(2) 독립성 : DB 물리적 크기, 위치 변경에도 SW에 영향을 끼치지 않는다.

(3) 보안성 : 계정관리, 권한 설정

(4) 중복 최소화 : 자료 중복, 데이터 종속성 해결

(5) 안정성 (backup/resotre) 

 

 

DBMS의 종류

(1) 계층형 DBMS : 각 계층은 tree 형태, 변경이 어렵다는 단점

(2) 네트워크 DBMS : 계층형의 단점을 보완, 모든 구조를 이해해야 하기 때문에 구현이 어렵다.

(3) 관계형 DBMS : 테이블(table)이라는 최소 단위로 구성. 

- 테이블 : 열(column) + 행(row)

 

(4) 객체지향 Database

(5) 객체-관계형 Database : 대표 Oracle. 관계형 데이터베이스에서 객체지향의 장점을 추가한 데이터베이스

- 사용자 타입 지원

- 참조 타입 지원 : 레코드가 다른 레코드 참조 가능

- 중첩 테이블 지원 : row가 다른 테이블로 구성

- 객체 간의 상속 가능

 

 


DBMS 구조

- Table : 데이터를 저장하기 위한 "표" 형태의 구조(relation)

- PK : 각각의 row를 unique하게 식별할 수 있는 column의 집합

 

Schema(스키마)

- database 안에서 (data의 구조, 표현 방법, 타입, 관계) 형식 언어를 이용해서 정의한 구조

- MySQL(MariaDB)에서는 schema = Database

(1) 외부 스키마 external schema : 사용자 입장에서 데이터베이스 모습으로 조직의 일부분 정의

(2) 개념 스키마 conceptual schema : 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의 -> data의 논리적 구조

(3) 내부 스키마 Internal schema : 전체 데이터베이스의 물리적 저장 형태 기술

 

 

스키마 생성 실습

- schema : shopdb

- table 2개 생성

1. memberTBL

열 이름(한글) 영문 이름 데이터 형식 길이 NULL 허용
아이디 memberID 문자(CHAR) 8글자(영문) X
회원 이름 memberName 문자(CHAR) 5글자(한글) X
주소 memberAddress 문자(CHAR) 20글자(한글) O

 

2. productTBL

열 이름(한글) 영문 이름 데이터 형식 길이 NULL 허용
제품 이름 productName 문자(CHAR) 4글자 (한글) X
가격 cost 숫자(INT) 정수 X
제조일자 makeDate 날짜(DATE) 날짜형 O
제조회사 company 문자(CHAR) 5글자(한글) O
남은 수량 amount 숫자(INT) 정수 X

 


Index

- primary key를 설정하려면, 해당 column index가 설정

 

 

view

- 가상의 테이블

(1) 안전하게 데이터 유지

(2) 보안적인 측면

(3) 사용의 편리성

 

 

Procedure(프로시저)

- 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합

- 여러줄의 쿼리문을 한 번의 요청으로 실행할 수 있도록 해준다.

- 장점 : 최적화, 캐시, 유지 보수, 트래픽 감소, 보안

- 단점 : 호환성, 성능, 디버깅

 

 

Stored Procedure(저장 프로시저)

- 함수 Interface 제공

 

 

Trigger

- 테이블에 부착

- Insert, Update, Delete가 발생한다.

- 테이블에서 회원정보를 삭제해야 하는 경우 -> 일반적으로 flag(update)

 


MySQL workbench utility

(1) SQL 구문 자동 생성

(2) Query editor 설정

- 예약어 대문자로 변경

- 자동완성

- 주석쿼리

- SQL 구문의 표준 형태로 변경

(3) 사용자 생성과 권한

 


SQL : SELECT 구문

SELECT 

FROM

WHERE 조건

GROUP BY 

HAVING 조건

ORDER BY

+ Recent posts