organize/데이터베이스

DBMS

001cloudid 2024. 10. 6. 13:51
728x90
목차
  1. DB와 DBMS
  2. SQL
  3. 용어
  4. 데이터베이스 구축 절차

 

1. DB와 DBMS

DB와 DBMS 관계

 위의 그림은 DB와 DBMS의 관계를 아주 쉽게 표현해 놓은 것이라고 생각한다. 그렇다면 DB는 무엇이면 DBMS는 무엇인지에 대해 자세히 알아보고자 한다.

 

DB란?

조직화된 정보들의 모음, 데이터의 집합, 데이터의 저장 공간 자체를 의미

DB의 예시

DBMS란?

  • DataBase Management System의 약자로 데이터의 집합인 데이터베이스를 관리해 주는 프로그램을 의미
  • 데이터베이스 생성부터 데이터베이스의 유지, 저장 공간, 백업/복구 등을 관리
  • 데이터 검색, 삽입, 수정, 삭제 작업을 함.
  • 유형 : 관계형, 계층형, 망형, 객체지향형 등
  • 종류 : Oracle, MySQL, MariaDB, SQL Server, DB2, SQLite 등
  • 특징
    데이터 무결성 : 제약 조건을 통해 데이터의 오류를 관리
    데이터 독립성 : 데이터 베이스가 변경되거나 저장소가 변경되어도 기존 데이터에 영향을 미치지 않음
    보안 : 권한, 암호화 등의 보안 기능
    데이터 중복의 최소화 : 공유가 가능하므로 동일한 데이터가 중복 저장되는 것을 방지
    응용 프로그램 제작 및 유지보수의 편의성 : 여러 응용 프로그램과 호환되어 프로그램 개발 및 유지보수가 쉬움
    데이터의 안정성 향상 : 백업, 복구 기능을 제공

 

2. SQL(Structured Query Language)

  • 관계형 DBMS에서 사용되는 언어
  • ANSI 표준이므로 모든 DBMS에서 동일하게 사용.
    단, 모든 DBMS의 SQL문이 완벽하게 동일하지 않음
  • 표준 SQL과 함께 자체 문법도 포함
    Oracle의 경우 +PL/SQL, MySQL의 경우 +SQL, SQL Server : + T-SQL
  • 구문
    DQL(데이터질의어) : select
    DDL(데이터정의어) create alter drop truncate
    DML(데이터조작어) insert update delete
    DCL(데이터제어어) grant revoke
    TCL(트랜잭션제어어) commit rollback savepoint
    ※ 교재에 따라 select를 DML로 포함한다. 나는 그게 중요한 건 아니라고 생각하는 주의라 그냥 그런가 보다 하고 넘어가면 된다고 생각한다.

 

3. 용어

데이터베이스에서 가장 어려운 것 중 하나를 뽑으라면 '용어'라고 대답할 것이다. 같은 의미인데 부르는게 참으로 다양하다.

  • DBMS(Database Management System)
    데이터베이스 관리 시스템의 약자. 데이터베이스를 관리하는 시스템 또는 프로그램
  • DB
    조직화 된 정보들의 모음 또는 데이터의 집합. DB는 고유한 이름을 가져야 함
  • 객체(Object)
    유무형의 정보를 가지고 있는 독립적인 실체. 종류로는 테이블, 뷰, 인덱스 등이 있음
  • 테이블(Table)
    데이터베이스 내에서 데이터를 저장할 때 가장 많이 사용하는 객체 유형. 행과 열로 이루어져 있음
  • 데이터(Data)
    테이블과 같은 객체에 저장된 실제 정보
  • 열(Column)
    열, 컬럼, 속성, 어트리뷰트(Attribute)라고 부름. 테이블에서 세로 부분, 하나의 테이블은 여러 개의 열로 구성
    ※ 여기서는 컬럼이라는 용어로 부를 예정
  • 열 이름(Column name)
    각 열을 구분하기 위한 이름. 테이블 내에서 고유해야 함
  • 행(Row)
    행, 로우, 레코드라고도 함. 테이블에서 가로 부분, 데이터 전체를 의미
  • SQL
    사람과 DBMS가 소통하기 위해 사용하는 언어
  • 기본키(Primary Key, PK)
    테이블의 컬럼을 구분해 줄 수 있는 대표 컬럼에게 부여하는 제약 조건으로, 중복값과 비어 있는 값이 들어 올 수 없음
  • 외래키(Foreign Key, FK)
    테이블과 테이블을 연결해 주는 제약 조건. 테이블에서 FK가 적용된 컬럼을 자식 컬럼, FK가 참조하는 컬럼을 부모 컬럼이라고 함
  • 스키마(Schema)
    데이터를 담는 그릇
    ※MySQL의 경우 스키마가 DB와 동일한 의미로 사용. Oracle에서는 스키마가 유저와 동일한 의미로 사용 

 

4. 데이터베이스 구축 절차

데이터베이스 구축 절차

DBMS를 설치한 후 『데이터베이스 생성 → 테이블 생성 → 데이터 입력 → 데이터 조회 및 활용』으로 데이터베이스 구축 절차가 이루어진다. 그 이 후 데이터 백업 및 관리나 응용 프로그램 개발 시 데이터 활용 등에 데이터가 사용된다. MySQL을 기준으로 설명할 예정이다.

※SQL문은 대문자로 작성하는 것이 통상적인 관행이다. 하지만 나는 대문자로 작성하는 것이 익숙하지도 않고 오타 날 확률이 높아 소문자로 작성하는 편이다. 앞으로도 그럴 예정

 

  • 데이터베이스 생성
create schema 스키마명;

 

  • 테이블 생성
create table 테이블명(컬럼명1 데이터타입(컬럼사이즈)[default, 제약조건], 컬럼명2 데이터타입(컬럼사이즈) [default, 제약조건] ,...);

 

이름 결정 시 유의 사항

데이터베이스명, 스키마명, 테이블명, 컬럼명 등은 영문을 사용(한글도 가능하나 호환성 문제가 발생할 가능성이 있음)

영문으로 시작해야하며, 영문/숫자/특수문자(_,#,$)가 혼합될 수 있음

 

데이터타입

※ char와 varchar : 공간효율 varchar, 성능 및 속도 char

 

제약조건

 

auto_increment 속성

데이터 삽입 시 자동으로 1부터 시작해서 1씩 증가하는 값이 반환. 시작값과 증가값은 변경 가능.

단, PK, Unique 제약조건이 선언된 컬럼 + 숫자 데이터 타입 걸럼에만 가능

create table 테이블명 (컬럼명 int/bigint auto_increment primary key,...); //테이블 생성 시
alter table 테이블명 auto_increment=입력값; //테이블 생성 후 auto_increment 시작값 변경
set @@auto_increment_incrrment=증가값; //증가값 변경

 

  • 데이터 입력, 수정 및 활용

데이터 입력

insert into 테이블명[(컬럼1, 컬럼2,...)]
values (값1, 값2,...);

 

값 작성 방식 숫자의 경우 그대로 숫자만 작성, 문자, 날짜의 경우 '문자/날짜'로 작은 따옴표 안에 작성

단, 날짜는 '년-월-일'으로 작성

 

데이터 수정

 

 

update 테이블명 
set 컬럼명1 = 값, 컬럼명2 = 값,...
[where 조건문];

 

데이터 삭제

delete from 테이블명
[where 조건문];

 

데이터 수정, 삭제 시 where문이 없을 경우 컬럼명=값에 대한 모든 데이터가 수정되고, 데이터 모두 삭제됨

 

  • 데이터 조회
select 컬럼명|*
from 테이블명
where 조건문
group by 그룹
having 그룹 조건
order by 컬럼명;

 

select 문의 논리적 실행 순서 from → where → group by → having → select → order by

 

예약어 distinct 데이터 값 중복 제거, alias 별칭

 

 

 

 

728x90

'organize > 데이터베이스' 카테고리의 다른 글

Databse란?  (0) 2023.12.02