데이터
: 컴퓨터 안에 기록되어 있는 숫자를 의미
DBMS
: 데이터베이스 관리 시스템, DataBase Management System
확장성(Scalability)과 부하분산(Load balancing)
서버에 과부하가 걸리게 되면 가장 쉬운 방법은 서버의 성능을 업그레이스 시키는 것이다. 서버의 성능을 올리는 것을 가리켜 '스케일 업(Scale Up)' 이라고 한다. 하지만 하드의 성능을 스케일 업 시키는 데에는 한계가 명확하게 보이게 된다. 그래서 한 개의 서버에 가해지는 부하를 여러개의 서버로 분산 시키는데 이를 'Load Balancing(로드 로드밸런싱)' 다른 말로 부하분산 이라고 한다.
SQL
: 관계형 데이터베이스 RDBMS를 조작할 떄 사용하는 언어
DML
: Data Manipulation Language, 데이터베이스에 새롭게 데이터를 추가하거나 삭제하거나 내용을 갱신하는 등, 데이터를 조작할 때 사용합니다.
DDL
: Data Definition Language의 약자로 데이터를 정의하는 명령어. 데이터베이스 객체를 만들거나 삭제하는 명령어 입니다.
DCL
: Data Control Language, 데이터를 제어하는 명령어, 트랜잭션을 제어하는 명령과 데이터 접근 권한을 제어하는 명령이 포함되어 있다.
계층형 데이터베이스
: 역사가 오래된 DBMS로 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식, DVD, 하드디스크가 이러한 계층형 데이터베이스라고 할 수 있다.
관계형 데이터베이스
: 표 형식 데이터를 다루는 것이 관계형 데이터 베이스 나중에 자세히 다룰 예정
객체지향 데이터베이스
: 객체라는 것을 중심으로 프로그래밍하는 언어 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것
XML 데이터베이스
: XML이란 자료 형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정리한 것을 말한다.
key-value 스토어(KSV)
: 키와 그에 해당하는 값이라는 단순한 형태의 데이터를 저장하는 데이터베이스입니다.(해시테이블) NoSQL(Not only SQL)이라는 슬로건으로부터 생겨난 데이터베이스로, 열 지향 데이터베이스라고도 불리운다.
클라이언트/서버 모델
: 사용자 조작에 따라 요청을 전달하는 클라이언트
와 해당요청ㅇ르 받아 처리하는 서버
로 소프트웨어를 나누고, 복수의 컴퓨터 상에 하나의 모델을 구현하는 시스템을 말합니다.
브라우저와 웹 서버로 구성되는 클아이언트/서버 모델의 시스템을 말합니다.
클라이언트의 요청을 받은 웹 서버는 우선 DNS에 가서 IP 주소를 찾고 사용자가 입력한 URL을 가지고 리턴이 됩니다. 그리고 IP 주소는 HTTP 요청을 통해 HTTP요청 메세지를 생성 합니다. 생성된 HTTP 메세지는 TCP 프로토콜을 실시해 인터넷을 거쳐 IP주소의 컴퓨터 서버로 전송이 됩니다. 서버는 클라이언트의 요청을 승인하고, 응답메세지를 전송합니다. 도착한 HTTP 응답메세지에는 HTTP 프로토콜을 사용해서 웹 페이지의 데이터로 변환이 되고 웹 브라우저의 출력에 의해 사용자가 보게 됩니다.
웹 시스템과 마찬가지로 클라이언트/서버 모델로 시스테이 구성됩니다. 하지만 단순히 요청과 응답을 되풀이 하는 것은 아닙니다.
웹 시스템에는 없었떤 사용자 인증이 필요합니다. RDBMS는 사용자 별로 데이터베이스 접근을 제한 할 수 있습니다. 이 때문에 데이터베이스를 사용하기 위해서는 사용자 인증을 거쳐야 합니다. 사용자 인증은 사용자 ID와 비밀번호로 실행됩니다. 만약인증에 실패하면 데이터베이스에 접근할 수 없습니다.
mysql -u (사용자) -p
데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것을 말합니다. 스키마 내에 정의 한다는 뜻에서 '스키마 설계'라 불리기도 합니다.
테이블을 설계할 때는 테이블 이름이나 열 이름을 지정하는데, 하나의 테이블에 대해 두 개의 이름을 지정할 때도 있습니다.
이러한 이유로 물리명과 놀리명이 함께 기재된 설계도나 정의서도 있다. 경우에 따라서는 별도의 논리명 기입 항목을 지정하지 않고 비고란에 기재하는 경우도 있습니다.
열명 | 논리명 | 자료형 | NULL | 기본값 | 비고 |
---|---|---|---|---|---|
item_code | 상품코드 | CHAR(4) | NO | ||
item_name | 상품명 | VARCHAR(30) | YES | ||
price | 가격 | INTEGER | Yes |
자료형
: 데이터베이스에 저장해야 할 데이터의 type을 정해주는 것이다. 위의 VARCHAR
는 문자 INTEGER
는 숫자 데이터가 들어간다는 것을 의미한다.
고정길이와 가변길이
: 어느 쪽으로 지정할 것인지는 저장할 데이터를 고려해 결정합니다. 제조번호 처럼자리수가 이미 정해져 있는 경우에는 고정길이로, 비고란 처럼 자주 입력되지도 않지만 입력되는 문자열의 길이의 변동 폭이 큰 경우에는 가변길이가 맞음
기본키(Primary Key)
: 기본키는 테이블에서 유일한 키로 Null 값을 가질 수 없습니다.
<테이블1>
학번 | 주민번호 | 성명 | 성별 |
---|---|---|---|
1001 | 812222-44124 | 김형석 | 남 |
1002 | 552115-1515151 | 김현천 | 남 |
1003 | 855151-5455544 | 류기선 | 여 |
1004 | 551515-4515441 | 홍영선 | 여 |
<테이블 2>
학번 | 과목명 |
---|---|
1001 | 영어 |
1001 | 전산 |
1002 | 영어 |
1003 | 수학 |
1004 | 영어 |
1004 | 전산 |
이런식으로 두 개의 테이블이 있다고 하면
<테이블2 수정>
id | 학번 | 과목명 |
---|---|---|
1 | 1001 | 영어 |
2 | 1001 | 전산 |
3 | 1002 | 영어 |
4 | 1003 | 수학 |
5 | 1004 | 영어 |
6 | 1004 | 전산 |
이런식으로 테이블을 만들게 되면 id값을 pk로 설정할 수 있게 된다.