MySQL
- MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템이다. (RDBMS)
- MySQL은 오픈소스로, 다중 사용자와 다중 스레드를 지원한다.
- C,CPP,JAVA,PHP 등 여러 프로그래밍언어를 위한 다양한 API를 제공한다.
- MySQL은 윈도우, 리눅스 등 다양한 운영체제에서 사용가능하고 Apache, PHP와 함께 웹개발에 자주 사용된다.
- APM의 M MyQL or (MariaDB) 등 Apache, PHP와 호환성이 좋기에 사용된다.
- MySQL은 오픈 소스 라이선스를 따르지만, 상업저긍로 이용시에는 반드시 상업라이센스를 필수로 구매해야 한다.
DataBase
데이터 베이스란?
- 데이터의 저장소 또는 통합해 관리되는 데이터의 집합체를 의미
- 중복 데이터 제거, 자료 구조화, 효율적 처리를 통해 관리
- 응용프로그램과 데이터베이스는 독립되어 있어, 데이터의 논리적 구조와 응용프로그램은 별개로 동작한다.
- 데이터베이스를 관리하는 이러한 미들웨어를 데이터베이스 관리시스템 (DBMS: Database Management System)이라 부른다.
데이터 베이스의 특징
- 사용자의 쿼리(질의)에 대해 즉각적인 처리와 응답이 이루어짐
- 생성, 수정, 삭제를 통한 항상 최신의 데이터를 유지한다.
- 사용자가 원하는 데이터를 동시에 공유할 수 있다.
- 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 할 수 있다.
- 응용프로그램과 데이터베이스는 독립되어 있어,데이터의 논리적 구조와 응용프로그램은 별개로 동작
SQL(Structured Query Language)
데이터 베이스에서 데이터를 정의, 조작, 제어하기 위해 사용되는 언어
SQL 구문도 위의 목적에 맞게 크게 세가지로 구분할 수 있다.
DML (Data Manipulation Laguage)
- 데이터를 조작하는 언어
- 데이터를 조작 선택, 삽입, 수정, 삭제 하는데 사용되는 언어
- DML 구문이 사용되는 대상은 테이블의 행에 속함
- DML을 사용하기 위해 꼭 그 이전에 테이블이 정의되야함
- SQL 문 중 SELECT, INSERT, UPDATE, DELETE 가 이 구문에 해당
- 트랜잭션 Transaction이 발생하는 SQL 도 이 DML에 속한다.
- 테이블의 데이터를 변경하거나 입력 수정 삭제 할 떄는 실제 테이블에 완전히 적용되지는 않고, 임시적으로
적용시키는 것 - 취소가능
- 테이블의 데이터를 변경하거나 입력 수정 삭제 할 떄는 실제 테이블에 완전히 적용되지는 않고, 임시적으로
DDL (Data Definition Language)
- 데이터를 정의하는 언어
- 데이터베이스 ,테이블, 뷰 인덱스 등의 데이터
- 베이스 개체를 생성 삭제 변경하는 역할
- DDL은 트랜잭션을 발생시키지 않는다.
- ROLLBACK, COMMIT 사용 불가
- DDL 문은 실행 즉시 MySQL에 적용
- CREATE/DROP/ALTER
DCL (Data Control Language)
- 데이터를 제어하는 언어
- 사용자에게 어떤 권한을 부여하거나 빼앗을 때 주로 사용되는 구문
- GRANT/REVOKE/DENY
관계형 데이터 베이스란?
관계형 데이터 베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.
관계형 데이터베이스란 테이블(table)로 이루어져 있고, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.
이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것은 관계형 데이터베이스의 특징이다.
관계형 데이터베이스의 테이블(table)은 다음 그림처럼 구성된다.
테이블은 이름을 가지고 있고,행(row)와 열(column) 그리고 거기에 대응하는 값을 가지낟.
관계형 데이터 베이스는 위와 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있다.
관계형 데이터베이스의 특징
관계형 데이터베이스는 다음과 같은 특징을 가진다.
- 데이터의 분류, 정렬, 탐색 속도가 빠르다.
- 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해준다.
- 기존에 작성된 스키마를 수정하기가 어렵다
- 데이터베이스의 부하를 분석하는 것이 어렵다.
관계형 데이터베이스의 용어
과계형 데이터베이스에 관련된 대표적 용어는 다음과 같다.
- 열(column)
각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가지고 있다.
이러한 열은 필드(Field) 또는 속성(attribute)라고도 부른다. - 행(row)
행은 관계된 데이터의 묶음을 의미한다.
한 테이블의 모든 행은 같은 수의 열을 가지고 있다.
이러한 행은 튜플(tuple) 또는 레코드(record)라고도 불린다. - 값(value)
테이블은 각각의 행과 열에 대응하는 값을 가지고 있다.
이러한 값은 열의 타입에 맞는 값이어야 한다. - 키(key)
테이블에서 행의 식별자로 이용되는 열은 키(key) 또는 기본 키(primary key)라고 한다.
즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중 데이터베이스 설계자가 지정한 속성을
의미한다. - 관계(relationship)
테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 다음과 같이 나눌 수 있다.
관계형 데이터 베이스의 관계 구성
- 일대일 (one-to-one) 관계
- 일대다 (one-to-many) 관계
- 다대다 (many-to-many) 관계
관계형 데이터베이스에서는 이러한 관계를 나타내기 위한 외래 키(foreign key)라는 것을 사용한다.
외래 키는 한 테이블의 키 중에서 다른 테이블의 행(row)를 식별할 수 있는 키를 의미한다.
테이블 간의 관계를 그림으로 표현한다면 다음과 같이 표현할 수 있다.
- 스키마(schema)
스키마는 테이블을 디자인하기 위한 청사진이라고 할 수 있다.
이러한 스키마는 테이블의 각 열에 대한 항목과 타입뿐만 아닌 기본 키와 외래 키도 나타내야 한다.
스키마는 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있다.
Reservation(ID, Name, Date, RoomNum)
위 문자열을 개체-관계 다이어그램으로 나타내면 다음과같다.
참고 자료
'백엔드 > MySQL' 카테고리의 다른 글
[MySQL] RDBMS(Relational Database Management System) 이해 (0) | 2022.04.04 |
---|---|
[MySQL] DATABASE2 MySQL - 1. mySQL (0) | 2022.04.04 |
[MySQL] SQL과 NoSQL의 차이 (0) | 2022.02.03 |