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
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 정규화 Normalization (0) | 2022.09.30 |
---|---|
[데이터베이스] 인덱스 Index, B tree (0) | 2022.09.30 |
[데이터베이스] 데이터베이스 특징 - 무결성, 독립성, 보안성, 중복 최소화, 일관성 (0) | 2022.09.30 |
[데이터베이스] MySQL Data Type, MySQL 내장 함수 (0) | 2022.07.20 |
[데이터베이스] DDL, DML, DCL, 트랜잭션, ACID, JOIN (0) | 2022.07.20 |