일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- abstract
- array
- ArrayList
- Class
- collection
- database
- db
- DDL
- default
- DML
- Exception
- Generic
- HashSet
- Interface
- Java
- Java 입문
- java 자료형
- java 클래스
- JavaBean
- javabeans
- JAVA의 특징
- LinkedList
- linkedset
- list
- mariadb
- Private
- protected
- public
- RuntimeException
- set
- Today
- Total
GeehDev
[MariaDB] 데이터베이스 기초 본문
DBMS란?
데이터
데이터란, 현실세계에서 측정되거나 수집된 자료 그 자체로, 그 자체로는 아직 의미나 가치를 가지지 않은 원시적인 값들(raw data)를 말합니다.
데이터 자체로는 측정되거나 수집된 데이터 중에 숫자로 표현되는 양적 데이터, 품질 또는 선호도와 같은 사실을 표현하는 질적인 데이터가 있습니다.
정보
데이터에 분석과 가공을 통해 의미있는 가치가 더해지면 정보가 됩니다.
해당 정보를 기준으로 의사결정이나, 의미있는 정보, 정책수립에 활용 가능한 정보를 말합니다.
지식
지식은 정보들이 축적됨에 따라 연결된 정보들의 패턴을 바탕으로 경험/학습/이해/추론을 통해 처리된 결과물을 지식이라고 합니다.
데이터베이스
데이터에 맥락을 추가하여 의미 있는 가치를 더하고 집계 및 분석할 수 있는 도구가 필요해졌습니다.
이러한 목표를 달성하기 위해 만들어진 것이 데이터베이스 입니다.
즉 데이터베이스는 컴퓨터의 저장장치에 저장되는 구조화된 데이터의 집합으로 관련 데이터와 정보의 조직화된 모음으로 볼 수 있습니다.
DBMS
DataBase Management System, 데이터베이스 관리 시스템으로 데이터 또는 정보를 검색하거나, 조작하기 쉽도록 데이터를 저장하는 방법을 제공하여 데이터의 일관성과 프로그램으로부터 데이터의 독립성을 유지할 수 있도록 관리 기법을 제공하는 소프트웨어 시스템 입니다.
데이터베이스의 트랜잭션의 특성
트랜잭션이란 데이터를 조작하는데 논리적 실행 단위를 말합니다. => ACID
- Atomicity 원자성
: 트랜잭션이 전부 실행되거나, 하나도 실행되지 않도록 하는 특성(일부만 실행되지 않음) 입니다. - Consistency 일관성
: 미리 정의된 규칙에 의해서만 데이터 조작이 가능하도록 하는 특성 입니다. - Isolation 독립성
: 하나의 트랜잭션을 실행하는 중 다른 트랜잭션의 동작이 꺼어들지 못하도록 보장하는 특성입니다. - Durabillty 지속성
: 트랜잭션 실행이 완료되어 결과가 반영되면, 그 결과는 영원히 적용되어야하는 특성입니다.
MariaDB
MariaDB를 통해 SQL프로그래밍에 대해 학습할 예정입니다.
오픈소스 DBMS
MariaDB는 오픈소스 데이터베이스 관리 시스템 입니다.
MariaDB는 5.5 버전부터 MySQL의 특징을 따르지 않고 독자적인 특징을 이어가기 시작했습니다.
관계형 DBMS(RDBMS)
- Relational DataBase Management System으로 데이터 베이스 간의 관계를 형성하면서 사용 유지하는 데이터베이스 관리 시스템 입니다.
- 테이블 간의 관계를 정의하는 방법으로 테이블의 데이터를 연결하며 사용합니다.
- 데이터를 테이블 형식으로 저장하여 행과 열 단위로 관리합니다.
- SQL(Stuctured Query Language)을 사용하여 데이터를 조작합니다.
💡 데이터를 테이블 형식으로 관리한다?
데이터를 테이블 형식을 관리한다....텍스트만으로는 감이 안올 수 있지만, 우리에게 이미 익숙한 형태가 있습니다. 바로 엑셀입니다.
엑셀처럼 열과 행으로 나눠서 데이터를 관리하며,
엑셀의 시트처럼 테이블을 나눠 관리할 수 있으며,
엑셀 함수로 공통 키값으로 데이터를 연결하는 것 처럼 테이블끼리 관계를 정의할 수 있습니다.
SQL
Structured Query Language, RDBMS를 관리하고, 조작하고, 정의하기 위한 ANSI 표준언어 입니다.
다만, 표준이라고 하더라도 어떤 RDBMS마다 개별 SQL이 조금씩 다르게 사용되고 있습니다.
- DDL : Data Definition Language - 데이터 정의 언어
: 데이터 베이스의 구조를 정의하는데 사용됩니다.
CREATE; 생성, ALTER; 변경, DROP; 삭제, TRUNCATE; 제거 - DML : Data Manipulation Language - 데이터 조작 언어
: 데이터 베이스 내에 저장된 데이터를 조작하는데 사용됩니다.
SELECT; 조회, INSERT; 삽입, UPDATE; 수정(업데이트), DELETE; 삭제 - DCL : Data Control Language - 데이터 제어 언어
: 데이터 베이스를 관리하는데 사용됩니다.
GRANT; 위임, REVOKE; 회수 - TCL : Transaction Control Language - 트랜잭션 제어 언어
: DML에 의해 변경된 결과를 데이터 베이스에 반영하는데 사용됩니다.
COMMIT; 커밋, ROLLBACK; 롤백
데이터베이스 모델링
현실 세계에서 사용되는 작업이나 사물들을 데이터 베이스 개체로 변환하는 과정을 말합니다.
데이터 모델링은 다음의 2가지를 고려하여 모델링해야 합니다.
1. 반복 제거 필요
2. 중복 제거 필요
💡 왜 중복된/연속된 데이터를 제거하는가?
중복된 데이터가 여러군데 있으면, 항목 하나가 변경될 경우 해당 중복된 데이터 마다 모두 수정해줘야하며, 수정 누락이 발생 시 오류 데이터가 발생하게되어 데이터의 무결성 문제 발생
- 데이터 무결성 : 데이터베이스 내의 데이터에 대한 정확성, 일관성, 유효성, 신뢰성을 보장하는 것
데이터 무결성이 깨지게 될 경우 해당 데이터의 데이터 자체로써의 기능을 상실하게되므로 데이터 무결성을 유지하기 위해 다양한 제약사항을 설정하고 다양한 검증 기능을 부여해야 합니다.
💡 개체(Entity)간의 관계(Relation)
관계가 있는 개체끼리의 관계는 부모와 자식으로 구분할 수 있습니다.
- 부모 테이블 : 자식테이블을 소유하고 있는 테이블
- 자식 테이블 : 부모테이블에 소유당하는 테이블
이 때 부모와 자식관계에 따라 부모가 1개, 자식이 1개인 관계를 1:1 관계, 부모가 1개 자식이 여러개인 관계를 1:n 관계라고 합니다.
참고
MariaDB로 따라 하며 배우는 SQL프로그래밍 데이터베이스 기초에서 실무까지 - 나익수, 서연경 지음
위 책을 공부하며 작성하고 있습니다!
'Study > DB' 카테고리의 다른 글
[MariaDB] 내장 함수① - 문자/시간/수치 관련 (1) | 2024.09.29 |
---|---|
[MariaDB] 연산자 (1) | 2024.09.29 |
[MariaDB] 기본 조작 (DDL/DML) (0) | 2024.09.29 |
[MariaDB] 데이터 유형 (1) | 2024.09.23 |