1. DataBase Management System
: 데이터베이스를 관리하는 시스템
: CRUD(Create, Retrieve, Update, Delete) (생성, 검색, 수정, 삭제)
: 대량의 데이터를 처리하는 시스템
: 다양한 자료구조와 검색구조를 사용해 빠른 검색이 가능하다
* 정렬
: 빠른 검색을 위해서는 데이터가 반드시 정렬이 되어 있어야함.
: 정렬이 되어 있다면, 데이터를 빠른 시간안에 찾을 수 있음
: NlogN
: 퀵정렬/힙정렬 계열이 주로 사용됨
* 인덱스
: 인덱스 종류
- 이진검색
-B-Tree 계열
- 사용 DBMS에서 가장 일반적으로 사용됨.
: 데이터를 추가/수정/삭제할 떄마다 정렬/인덱스 업데이트가 일어남.
* 이진탐색
: 데이터를 정렬후 'test'라는 단어를 검색하는 경우
: 한가운데 값을 찾고 좌측 또는 우측으로 다시 한가운데를 검색
: log_2의 N번으로 검색할 수 있게됨.
: 약 1000개의 데이터가 있을 때 10번만 찾으면 데이터를 찾을 수 있게됨.
: 데이터가 추가/삭제/변경될 때마다 한가운데 들의 값을 미리 계산해 둔다.
* B-트리
: 이진검색과 유사하지만, 한번에 비교를 2번한다.
: a<x<b 같은 방법으로 비교함.
: 이 기술은 R이 CUD보다 많다는 가정하에 사용되어짐.
* DBMS의 종류
: 계층형 데이터 베이스
: 네트워크형 데이터 베이스
: 관계형 데이터 베이스(RDBMS)
: 객체 지향 데이터 베이스
: 객체 관계형 데이터 베이스(ORDBMS)
: NoSQL(Not Only SQL)
2. RDBMS
* RDBMS란?
: 관계형 데이터베이스 시스템
: 테이블 기반의 DBMS
: 테이블-컬럼 형테의 데이터 저장 방식
: 테이블과 테이블간의 연관관계(주로 외래키의 형태)를 이용해 필요한 정보를 구하는 방식
: 모델링은 E-R(Entity Relationship)모델을 사용
: 테이블을 엔티티(기본)과 Relationship(유도)테이블로 구분하는 방식.
: 데이터를 테이블 단위로 관리
: 하나의 테이블은 여러개의 컬럼으로 구성됨
: 테이블끼리의 중복정보는 최소화 시킴
: 동일한 데이터가 중복되면 수정시 문제발생 확률이 높아짐
: 정규화 -> 정규형을 통해 해결한다.
: 사용방식
: 여러 테이블을 합쳐 큰 테이블을 생성
* 기본용어
: 스키마
: DB, 테이블 정의 내역
: SQL쿼리(SQL Query) Structured Query Language
: 관계형 DBMS를 사용하는 전용 질의 언어
: 대소문자 가리지 않음 / Interpreter 언어이다.
: 기본키(Primary Key:PK)
: 테이블에서 하나의 레코드를 지정할 수 있는 하나 이상의 컬럼집합
: 주민등록번호, SSN(Social Security Number) 같은 것들
: 외래키(Foreign Key:FK)
: 어떤 테이블의 기본키가 다른 테이블의 컬럼에 들어있을 경우
: 테이블(Table)
: 정보들의 묶음 단위
: 학교,학생, 교수 등등..
: 컬럼
: 테이블을 구성하는 정보들
: 학생테이블- 이름,주소,전화번호,나이,성별...
: 레코드(Record)
: 테이블에 들어있는 여러가지 인스턴스 하나하나를 지정
: 대학교의 학과 테이블
: 경영학과,미술학과, 수학과...
: 기본키로 구별가능
: 도메인 값(Domain Value)
: 각 컬럼에서 나올 수 있는 후보값
'프로그래밍 > RDBMS - MySQL' 카테고리의 다른 글
INDEX (0) | 2017.03.28 |
---|---|
DCL(Data Control Language) 명령어 (0) | 2017.03.27 |
DDL(Data Definition Language) 명령어 (0) | 2017.03.27 |
SQL 기본 & DML(Data Manipulation Language) 명령어 모음 (0) | 2017.03.27 |
3. SQL (0) | 2017.03.24 |