1.1 DBMS 개요
1.1.1 데이터베이스의 정의와 특징
데이터베이스란 구조화되고, 체계적인 데이터들의 모음으로 여러 명의 사용자나 응용프로그램이 공유하고 동시에 접근 가능하다.
DBMS는 이 데이터베이스를 관리 운영하는 소프트웨어이다.
여러 명의 사용자나 응용 프로그램이 이 DBMS가 관리하는 데이터에 동시에 접속하고 데이터를 공유한다.
데이터 무결성
데이터베이스 안의 데이터는 오류가 있어서는 안된다.
무결성을 위해서 데이터베이스는 제약 조건을 가진다.
고유성 제약 조건, 외래 키 제약조건, 기본 값 제약 조건, NOT NULL 제약 조건등 해당 제약조건들을 이용하여 NULL이 될 수 없게 하거나 중복된 값을 방지을 하기 위해 사용한다.
데이터 독립성
데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경해도 기존 응용 프로그램은 영향을 받지 않아야 한다.
즉, 의존적 관계가 아닌 독립적인 관계이어야 한다.
기존 응용 프로그램이 영향을 받으면 호환성 문제가 생기게 된다.
보안
데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근되어야 한다.
접근할 때도 사용자의 계정에 따라 다른 권한을 가져야한다.
데이터 중복의 최소화
동일한 데이터가 여러 개 중복되어 저장되는 것을 방지한다. 동일한 데이터가 여러 개 중복되는 것을 방지하면 저장 공간을 최소화 할 수 있고, 일관성을 유지할 수 있다.
응용 프로그램 제작 및 수정이 쉬워짐
데이터베이스를 이용함으로 통일된 방식으로 응용 프로그램 작성이 가능해지고 유지보수가 쉬워진다.
데이터의 안전성 향상
대부분의 DBMS가 제공하는 백업, 복원 기능을 이용함으로 데이터가 깨지는 문제가 발생할 경우를 방지할 수 있다.
1.1.2 데이터베이스의 발전
오프라인으로 관리
컴퓨터가 없던 시절 회사를 운영하기 위해서는 종이에 연필로 수입과 지출을 기록하였다.
파일 시스템 사용
컴퓨터를 사용하면서 종이에 기록하던 내용을 컴퓨터 파일에 기록 저장하게 되었다.
컴퓨터에 데이터를 저장할 때는 메모장이나 엑셀을 활용해서 저장하였고, 그것을 활용하기 위해 응용 프로그램이 저장된 내용을 읽고 쓰는 기능을 가지게 되었다.
파일 시스템은 하나의 응용 프로그램마다 하나의 데이터 파일이 할당되어 데이터 양이 많아지면 데이터의 중복으로 불일치가 발생한다.
하지만 소량의 데이터를 처리하기에 처리 속도가 DBMS보다 훨씬 빠르며 추가 비용이 안들기 때문에 아직도 많이 사용된다.
데이터베이스 관리 시스템
파일시스템의 단점을 보안하고 대량의 데이터를 효율적으로 관리하고 운영하기 위해 사용된 것이 DBMS이다.
DBMS는 데이터베이스를 잘 관리하고 운영하기 위한 소프트웨어를 말한다.
DBMSD에 데이터를 구축하고 관리하고 활용하기 위해서 사용되는 언어가 SQL이다.
이 SQL은 DBMS를 통해 정보들을 입력하고 관리하고 추출할 수 있다.
1.1.3 DBMS 분류
DBMS의 유형은 크게 계층형, 망형, 관계형, 객체지향형, 객체관계형 등으로 분류된다.
현재 사용되는 DBMS 중 관계형이 가장 많은 부분을 차지하며 일부 멀티미디어 분야에서 객체지향형이나 객체관계형이 활용되고 있는 추세이다.
계층형 DBMS
각 계층은 트리 형태를 가지며 1:N 관계를 갖는다.
계층형 DBMS의 문제는 처음 구축한 이후 그 구조를 변경하기 까다롭다는 점이 있다.
또한, 검색은 빠르지만 유연성이 부족해서 임의의 검색에는 어려움이 따른다.
망형 DBMS
망형 DBMS는 계층형 DBMS 문제점을 개선하기 위해 시작되었으며 1:1, 1:N, N:M 관계가 지원되어 효과적이고 빠른 데이터 추출이 가능해졌다.
그러나 매주 복잡한 내부 포인터를 사용하고 이 구조를 이해해야 프로그램 작성이 가능하여 어렵다는 점이 있다.
관계형 DBMS
관계형 DBMS의 핵심 개념은 데이터베이스는 테이블이라는 최소 단위로 구성되어 있고, 테이블은 하나 이상의 열로 구성되어 있다.
테이블이란 데이터를 효율적으로 저장하기 위한 구조이다.
정보를 저장하기 위해 하나의 테이블이 아닌 여러 개의 테이블을 나누어 저장함으로 불필요한 공간 낭비와 효율성을 보장할 수 있다. 또한 테이블의 관계를 제약 조건을 사용해주므로 부모와 자식의 관계로 묶을 수 있다.
관계형 DBMS의 장점은 유연성이 좋고, 대용량 데이터의 관리와 데이터 무결성의 보장을 잘 해주기 때문에 동시에 데이터에 접근하는 응용 프로그램을 사용할 경우 좋은 효율을 가지고 있다.
반대로 단점은 시스템 자원을 많이 차지해서 시스템이 전반적으로 느려지는 것이다.
1.1.4 SQL 개요
SQL은 관계형 데이터베이스에서 데이터를 조작하고 관리하기 위해 사용되는 언어이다.
DBMS 제작 회사와 독립적이다.
SQL은 모든 DBMS 제작회사에 공통적으로 공개되고 각 제작회사는 이 표준 SQL에 맞춰 DBMS를 개발한다.
그러므로 표준 SQL은 대부분 DBMS에서 공통적으로 호환된다.
다른 시스템으로 이식성이 좋다.
SQL 표준은 서버용, 개인용, 휴대용 장비에서 운영되는 DBMS 마다 상호 호환성이 뛰어나다.
그러므로 어느 곳에서 사용된 SQL을 다른 시스템으로 이식하는데 문제가 없다.
표준이 계속 발전한다.
SQL 표준은 SQL:86 ..... SQL:2019 등 계속 개선된 표준안이 발표되고 있다.
대화식 언어이다.
SQL은 기존 프로그래밍과 달리 바로 질의하고 결과를 얻는 대화식 언어로 구성되어 있다.
분산형 클라이언트/서버 구조이다.
SQL은 분산형 구조인 클라이언트/서버 구조를 지원한다.
즉 클라이언트에서 질의하면 서버에서 그 질의를 처리한 후 다시 클라이언트에 전달하는 구조이다.
모든 DBMS의 SQL문이 완벽하게 동일하지 않다. 그래서 각 회사는 표준 SQL을 지키면서 자신의 제품에 특화시킨 SQL을 사용한다. ex) oracle은 PL/SQL, SQL Server는 T-SQL
1.2 MySQL 소개
1.2.1 MySQL의 개요와 변천사
MySQL은 Oracle사에서 제작한 DBMS 소프트웨어이다.
1.3 MySQL의 에디션 및 기능 비교
Mysql은 크게 상용 에디션과 무료 에디션으로 나뉘는데, Standard, Enterprise, Cluster CGE 세 개의 상용 에디션과 Community 무료 에디션이 제공된다.
비용이나 기능 면에서는 Standard < Enterprise < Cluster CGE 순서로 비싸거나 기능이 높다.
무료인 Community 에디션은 Enterprise 에디션과 기능상의 차이는 없으며 사용 허가에 대한 라이선스 차이이다.
'Database > MySQL' 카테고리의 다른 글
이것이 MySQL이다. [Chapter 7 - SQL 고급(데이터 형식, 변수, 내장함수)] (0) | 2024.03.09 |
---|---|
이것이 MySQL이다. [Chapter 6 - SQL 기본(SELECT문, SQL문, CTE)] (0) | 2024.03.03 |
이것이 MySQL이다. [Chapter 5 - MySQL 유틸리티 사용법(외부 Mysql 서버 관리, 사용자 관리)] (0) | 2024.03.03 |
이것이 MySQL이다. [Chapter 4 - 데이터베이스 모델링] (0) | 2024.03.03 |
이것이 MySQL이다. [Chapter 3 - MySQL 전체 운영 실습( 데이터베이스 구축 절차, 테이블, 인덱스, 뷰] (0) | 2024.03.03 |