1강. 데이터베이스
데이터베이스
- 비 휘발성 저장장치에 저장되는 영속된 데이터의 집합
- 데이터를 저장하며, 효율적으로 검색할 수 있도록 정리해준다.
데이터베이스 데이터를 비 휘발성 저장장치에 저장하는 이유?
- 데이터베이스 내의 데이터를 영구적으로 보존되어야 하는데,주기억장치에만 데이터를 저장하면 전원을 끄는 순간 모든 데이터가 날아가 버린다.
- 하드디스크나 플래시메모리(SSD) 등의 비 휘발성 저장장치에 저장해야 한다.
DBMS
- 생산성
- 검색, 추가, 삭제, 갱신같은 처리 등 기능을 제공
- 기능성
- 복수 유저의 요청에 대응하거나 대용량 데이터를 저장하고 고속으로 검색하는 기능 제공
- 신뢰성
- 확장성, 부하분산을 구현
- 이를 클러스터 구성, 스케일 아웃이라 부름
- 외부로 데이터를 내보내거(export)나 집어넣는 것(import)도 가능
데이터베이스를 조작하는 언어 == SQL
- SQL은 DBMS와 대화하기 위한 언어로 관계형 데이터베이스 관리 시스템을 조작할 때 사용
- SQL은 IBM이 개발한 SEQUEL이라는 관계형 데이터베이스 조작용 언어를 기반
- ISO 등에 의해 표준화가 진행되어 표준 언어가 됨
SQL명령의 종류
- DML(Date Manipulation Language) : 데이터 조작어
- DDL(Data Definition Language) : 데이터 정의어
- DCL(Data Control Languate) : 데이터 제어어로 트랜잭션, 데이터 접근권한하는 명령이 포함됨
2강. 다양한 데이터베이스
- 계층형 데이터베이스
- 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식
- 관계형 데이터베이스
- 관계 대수라는 것에 착안해 고안한 DB로 행과 열을 가지는 표 형식 데이터를 저장하는 데이터베이스
- 객체지향 데이터베이스
- 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것
- XML 데이터베이스 → Extensible Markup Language
- XML이란 자료 형식으로 기록된 데이터를 저장하는 데이터베이스
- SQL을 사용하는 것이 아니라 XQuery를 사용합니다.
<?xml version="1.0"?> <CAT> <NAME>Izzy</NAME> <BREED>Siamese</BREED> <AGE>6</AGE> <ALTERED>yes</ALTERED> <DECLAWED>no</DECLAWED> <LICENSE>Izz138bod</LICENSE> <OWNER>Colin Wilcox</OWNER> </CAT>
- 키-밸류 스토어(열 지향 데이터베이스)
- 맵이나 해시 테이블 형식으로 저장하는 방식으로 NoSQL이라고도 합니다. → MongoDB, redis → 확장성 굿
- RDBMS : 관계형 데이터베이스를 관리하는 소프트웨어
- 종류 :
3강. 데이터베이스 서버
1. 클라이언트/서버 모델
- 클라이언트/서버 모델 : 사용자 조작에 따라 요청을 전달하는 '클라이언트'와 해당 요청을 받아 처리하는 '서버'로 소프트웨어를 나누고, 복수의 컴퓨터 상에서 하나의 모델을 구현하는 시스템.
> 웹 시스템에서의 클라이언트/서버
- 웹 시스템이란 브라우저와 웹 서버로 구성되는 클라이언트/서버 모델의 시스템.
- 전형적인 클라이언트/서버 모델에서의 처리 : 브라우저(클라이언트)가 웹서버에 요청(Request)를 보내면, 클라이언트의 요청을 받은 웹 서버에서는 그에 맞게 처리 후 응답(Response)을 클라이언트로 반환.(응답 데이터는 네트워크를 통해서 전송)
웹에서는 요청과 응답이 되풀이되면서 웹 페이지가 표시됨.
> RDBMS의 클라이언트/서버
RDBMS도 웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스템이 구성됨. 하지만 웹 시스템에는 없었던 ID와 비밀번호를 이용한
사용자 인증
이 필요.
> SQL명령 실행
RDBMS에 접속하면 SQL명령을 보낼 수 있음. 서버가 가동 중이고 네트워크에 연결되있으면 클라이언트에서 SQL명령을 보낼 때 서버는 응답. 한번 데이터베이스에 접속하면 이를 유지. 일반적으로 클라이어트를 종료하면 데이터베이스 접속도 끊김.
4강. Hello World 실행하기
MySQL에는 다음과 같이 몇 가지 패키지가 있는데..
- MySQL Enterprise Edition(엔터프라이즈)
- MySQL CIuster CGE (클러스터)
- MySQL Community Sever(커뮤니티)
- 스페이스를 넣지 않고 붙여서 입력할 경우 에러가 발생해서 실행할 수 없다.
- 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.
SQL명령과 달리 많은 데이터베이스 제품들은 데이터의 대소문자를 구별(설정에 따라 구별하지않는 경우도 있음)
- SELECT 명령을 실행하면 표 형식의 데이터가 출력. 행(레코드)와 열(컬럼/필드)로 구성.
- 데이터는 자료형으로 분류할 수 있고, 열은 하나의 자료형(문자열형, 수치형, 날짜시간형..)만 가질수 있음.
- NULL(널)은 값이 없는 데이터.
'개발 외의 것들 > 책을읽읍시다.' 카테고리의 다른 글
비하인드 도어 - B.A.패리스 (0) | 2023.04.12 |
---|---|
[TIR]SQL첫걸음 5,6강 (0) | 2022.02.12 |
[TIR]cleancode 10.클래스 (0) | 2022.02.10 |
[TIR]cleancode 7,8,9 중간점검 (0) | 2022.02.09 |
[TIR]cleancode 9. 단위 테스트 (0) | 2022.02.06 |