코딩두의 포트폴리오

1. MySQL 데이터베이스의 이해 본문

STEP 특화교육/MySQL 데이터베이스 기초와 Web 활용

1. MySQL 데이터베이스의 이해

코딩두 2025. 5. 12. 16:51

DIKW의 체계

데이터, 정보, 정보, 지혜

통합 데이터: 공유 목적으로 수집,관리하는 데이터

저장 데이터: 사용자가 필요 시 접근 가능한 매체에 저장하는 데이터

운영 데이터: 기업 운영 필요한 데이터

공유 데이터: 다수의 사용자 또는 시스템이 공유 가능하도록 구성된 데이터

 

데이터베이스(DB)

다수의 사용자에 의해 공유되기 위해 통합,저장,운영,공유되는 속성을 가진 데이터의 집합

 

DB의 특성 - 실시간 접근, 지속적 변화, 동시 공유, 내용 기반 참조

 

DB의 요구 조건

데이터 무결성: 데이터 오류 등으로 변형되지 않아야 함

데이터 독립성: 데이터베이스와 응용 프로그램은 상호 독립되어야 함

데이터 보완: 허가된 사용자만 데이터에 접근할 수 있어야 함

데이터 분산 최소: 동일 데이터 분산 관리가 최소화되여야 함

데이터 안전서이 데이터 복업, 백업 기능이 있어야 함

응용 SW 활용성: 데이터 조회,입력,출력과 관련된 응용 SW 활용이 용이해야 함

 

데이터베이스 관리 시스템(DBMS)

응용 프로그램과 DB 사이의 중재 역할, 데이터를 다수가 공유할 수 있게 관리하는 시스템

 

DBMS 기능

무결성 관리: 트랜젝션, 데이터 등에 대한 무결성 보장

성능 관리: 데이터 조회 속도 최적화, 옵티마이저 등의 관리

동시성 제어: 다수의 트랜젝션 처리를 위한 공유 제어

회복 관리: 데이터 손상 및 돌발 장애에 대응

보안 관리: 비인가 사용자로부터 데이터 보호, 접근 권한 관리

편의 기능: DB 관리 편의를 위한 유틸리티 제공

 

Data, DB, DBMS 관계

 

데이터베이스 관리 시스템

응용 프로그램과 데이터베이스 사이의 중재 역할, 데이터를 다수가 공유할 수 있게 관리

 

관계형 데이터베이스 -> 자료를 2차원 구조의 테이블로 표현

서로 관련된 데이터 지점에 대한 접근을 저장,제공하는 데이터베이스 유형 -> 데이터가 열과 행의 테이블에 저장됨

 

관계형 DB 특징

- 전체 트랜잭션이 하나의 단위로 기록되고, 실패 시 전체 롤백

- 서로 다른 데이터 구조의 관련성을 쉽게 파악할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음

- 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델

- 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장

 

관계형 DB 장점

- 일반적으로 정렬,탐색,분류가 빠름

- 신뢰성이 높아 데이터의 무결성이 보장

- 정규화에 따른 갱신이 용이 (정규화: 명령어 체계 및 쿼리 구문이 압축되고 체계화)

 

관계형 DB 단점

- 기존에 작성된 스키마를 수정하기 어려움

- DB의 부하를 분석하기 어려움

- 비정형 데이터가 포함된 빅데이터 처리에는 비효율적

 

관계형 DB의 형식, 용어

릴레이션 스키마 -> 사원 번호, 이름, 직급, 주소, 급여, 부서명

속성(= 어트리뷰트 = 열 = 필드) -> 위의 하나하나의 속성

릴레이션 인스턴스 - 전체적인 인스턴스

튜플(= 행 = 레코드) -> 데이터에 대한 하나의 행

도메인 = 급여에 해당되는 데이터 영역

 

릴레이션: 하나의 개체에 대한 데이터를 2차원 테이블로 표현한 구조

속성: 릴레이션의 열

튜플: 릴레이션의 행

도메인: 하나의 속성이 가질 수 있는 모든 값의 집합

릴레이션 스키마: 릴레이션의 이름 및 릴레이션에 포함된 모든 속성의 이름 -> 정적이기 때문에 수정 어려움

릴레이션 인스턴스: 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합 -> 동적인 특징(다양한 데이터의 삽입,변경)

 

관계형 DB의 종류

1. MySQL

Oracle에서 제작

작동 운영 체제: Unix, Linux, Windows, Mac

기타: 오픈 소스, 상용 및 무료 버전

 

2. MariaDB

MariaDB 재단에서 제작

작동 운영 체제: Unix, Linux, Windows

기타: 오픈 소스, MySQL 초기 개발자들이 독립해서 만듦

 

3. PostgreSQL

PostgreSQL 그룹에서 제작

작동 운영 체제: Unix, Linux, Windows, Mac

기타: 오픈 소스

 

4. Oracle

Oracle사에서 제작

작동 운영 체제: Unix, Linux, Windows

기타: 상용 시장 점유율 1위

 

5. SQL Server

Microsoft에서 제작

작동 운영 체제: Windows

기타: 주로 중,대형급 시장에서 이용

 

6. DB2

IBM에서 제작

작동 운영 체제: Unix, Linux, Windows

기타: 메인 프레임 시장 점유율 1위

 

7. Access

Microsoft사에서 제작

작동 운영 체제: Windows

기타: PC용

 

8. SQLite

리처드 힙이 제작

작동 운영 체제: Android, iOS

기타: 모바일 전용, 오픈 소스

 

SQL(Structured Query Language): 구조화된 질의 언어

관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위한 비절차적(Non-Procedural Language) 언어

-- 비절차적: 질의 데이터를 입력하여 조화하고 신규 데이터를 입력하기 위한 언어

-> 데이터 선택, 추출 사항에 대한 기술

-> 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능까지 포함함

 

SQL 구성

DDL(Data Defintion Language): 데이터를 저장할 구조를 정의하는 언어(데이터 정의 언어)

 

 

DML(Data Defintion Language): DDL로 정의된 데이터 구조에서 실제 데이터를 조작하는 언어(데이터 조작 언어)

 

DCL: DDL로 정의된 구조에 사용자 접근 권한을 부여 및 회수하는 언어(데이터 제어 언어)

- DBMS의 동작 설정 및 DBMS 접근에 대한 사용자의 권한을 관리하는 SQL 명령어 집합

- 명령어 집합: GRANT, REVOKE, BEGIN 등의 명령어로 구성

- 주로 DBA(데이터베이스 관리자)가 사용

 

MySQL(My Structured Query Language)

표준 DB 질의 언어 SQL을 사용하는 개방 소스의 관계형 데이터베이스 관리 시스템

- MYSQL AB에서 개발한 오픈 소스 RDBMS

- 현재는 ORACLE이 인수

- 상용으로 사용할 경우에는 상용 라이선스 취득이 필요

- 다양한 프로그램 언어를 위한 응용 프로그램 인터페이스(API) wprhd

 

MySQL 특징

- 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템

- 오픈 소스

- 다중 사용자, 다중 스레드 지원

- 매우 빠르고 유연

- 사용이 용이

- 유닉스, 리눅스, 윈도우 등 다양한 os에서 사용 가능

 

MySQL 장점

- 오픈 소스 라이선스를 따르기 때문에 무료로 사용 가능 (상용 라이선스는 예외)

- 다양한 os에서 사용 가능

- 여러 가지 프로그래밍 언어 지원

- 크기 큰 데이터 집하을 아주 빠르고 효과적으로 처리

- 널리 알려준 표준 SQL 형식을 사용

- MySQL 응용 프로그램을 사용자 용도에 맞게 수정 용이(커스터마이징)

 

MySQL 활용 예시