1. 데이터베이스 (DB : Database)
통합하여 관리되는 데이터의 집합체를 의미하며,
중복된 데이터를 없애고, 자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리된다.
데이터베이스의 특징은 다음과 같다.
- 사용자의 질의에 대한 즉각적인 처리와 응답
- 생성, 수정, 삭제를 통한 최신의 데이터 유지
- 원하는 데이터 동시 공유
- 주소가 아닌 내용에 따른 데이터 참조 가능
2. 관계형 데이터베이스 (Relational Database)
현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.
테이블로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.
이처럼 데이터의 종속성을 관계로 표현하는 것이 관계형 데이터베이스의 특징이다.
테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 각 행과 열에 대응하는 값을 가진다.
관계형 데이터베이스는,
- 빠른 데이터 분류, 정렬, 탐색 속도
- 높은 신뢰성과, 어떤 상황에서도 보장되는 데이터의 무결성(정확성과 일관성을 유지하고 보증하는 것)
- 기존에 작성된 스키마 수정이 어려움
- 데이터베이스의 부하를 분석하는 것이 어려움
<대표적인 용어>
1) 열(colum)
각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가진다.
이러한 열을 필드(field) 또는 속성(attribute)라고 부른다.
2) 행(row)
관계된 데이터의 묶음을 의미하며, 한 테이블의 모든 행은 같은 수의 열을 가진다.
이러한 행을 튜플(tuple) 또는 레코드(record)라고 부른다.
3) 값(value)
테이블은 각 행과 열에 대응값을 가진다. 이 값은 열의 타입에 맞는 값을 가진다.
4) 키(key)
행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 한다.
이 키는 설계자가 지정한 속성을 의미한다.
5) 관계
테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 다음과 같이 나눌 수 있다.
- 일대일
- 일대다
- 다대다
관계형 데이터베이스에서는 이러한 관계를 나타내기 위해 외래 키라는 것을 사용한다.
외래 키는 한 테이블의 키 중에서 다른 테이블의 행을 식별할 수 있는 키를 의미한다.
6) 스키마
테이블을 디자인하기 위한 청사진(?)이라고 할 수 있다.
개체-관계 다이어그램이나 문자열로 표현할 수 있다.
(아직 이해X)
3. SQL(Structured Query Language)
데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어이다.
목적에 따라 크게 세 가지로 구분한다.
-DDL : 데이터베이스나 테이블을 생성, 삭제, 구조 변경 (CREATE, ALTER, DROP)
-DML : 데이터베이스에 저장된 데이터를 처리하거나 조회, 검색 (INSERT, UPDATE, DELETE, SELECT)
-DCL : 데이터의 보안성 및 무결성 등을 제어 (CRANT, REVOKE)
ex 1)
CREATE TABLE My_table(
my_field1 INT
my_field2 VARCHAR(50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, myfield2)
);
CREATE는 데이터베이스에서 객체를 생성한다.
ex2) DROP TABLE My_table
DROP은 데이터베이스에서 객체를 삭제한다.
4. MySQL
가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템이다.
MySQL은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원한다.
또한 C언어, C++, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공하고 있다.
MySQL은 유닉스, 리눅스, 윈도우 등 다양한 운영체제에서 사용할 수 있으며, 특히 PHP와 함께 웹 개발에 자주 사용된다.
5. MySQL의 장점
- 오픈 소스 라이센스를 따르기에 무료로 사용 가능
- 다양한 운영체제에서 사용할 수 있으며, 여러 가지의 프로그래밍 언어를 지원
- 크기가 큰 데이터 집합도 빠르고 효과적으로 처리
- 널리 알려진 표준 SQL방식을 사용
- MySQL응용 프로그램을 사용자의 용도에 맞게 수정할 수 있음
[Reference]
'hololo > BASIC' 카테고리의 다른 글
생활코딩 React3(Create) 필기 (0) | 2020.03.17 |
---|---|
생활코딩 React2(Event) 필기 (0) | 2020.03.10 |
생활코딩 React 필기 (0) | 2020.02.24 |