데이터 베이스 Database(DB) #3

이온·2023년 6월 24일
0

데이터베이스

목록 보기
3/7

1. 데이터베이스 소개

데이터는 현실 세계에서 수집된 단순한 사실과 값들을 모아 놓은 것
정보는 데이터를 특정 목적에 의해 해석하거나 가공한 형태

데이터베이스 정의

: 데이터들의 집합

한 조직 안에서 여러 사용자와 응용 프로그램이 공동으로 사용하는 데이터들을 통합하여 저장하고 운영하는 데이터

데이터베이스의 필요성

파일처리 시스템의 한계

• 데이터의 구조가 바뀌면 응용 프로그램의 구조도 바뀌어야 함 (데이터 종속의 문제)
• 응용 프로그램 별로 데이터를 생성할 수 있기 때문에 데이터가 중복될 수 있음 (데이터 중복의 문제)
• 데이터의 무결성을 지킬 수 없음

데이터베이스의 특징

  • 실시간 접근성: 사용자가 원할 때 언제든지 접근 가능해야 함
  • 지속적인 변화: 데이터의 삽입, 삭제, 갱신을 통해 최신 데이터를 유지해야 함
  • 동시 공유: 여러 사용자가 동시에 이용할 수 있어야 함
  • 내용에 대한 참조: 데이터가 저장된 물리적 위치가 아닌 값을 가지고 검색할 수 있어야 함

2. 데이터베이스의 종류

RDB(Relational Database)는 관계형 모델을 기반으로 SQL을 이용해 데이터를 관리함
NoSQL(Not only SQL)은 데이터 간의 관계를 정의하지 않고 RDB보다 유연한 모델을 이용

관계형 데이터베이스

• 데이터를 행과 열을 가지는 테이블로 표현
• 테이블 간의 관계를 이용해 데이터를 효과적으로 관리하여 데이터의 무결성을 보장
• 정의된 테이블(스키마)에 맞게 데이터가 삽입되므로 데이터의 안정성을 보장
• 데이터의 구조가 일관적인 경우에 주로 사용

RDBMS의 종류

NoSQL

• 데이터를 저장할 수 있는 유형의 제한이 없음
• 새로운 유형의 데이터를 추가하기 용이
• 데이터의 구조가 일관적이지 않고 자주 변경되는 경우에 적합 •대용량의 데이터를 더 빠르게 처리할 수 있음

NoSQL의 종류

RDB vs NoSQL

  • RDB
    • 행과 열로 구성된 테이블로 데이터를 표현
    • 관계 모델을 기반으로 데이터를 관리
    • 데이터의 무결성과 안정성이 중요한 경우 사용 • MySQL, PostgreSQL, MariaDB 등
  • NoSQL
    • 데이터 표현 방식이 고정적이지 않음
    • 일반적으로 대용량의 데이터를 RDB보다 빠르게 처리할 수 있음
    • 데이터의 구조가 일관적이지 않은 빅데이터를 처리하는 경우 사용 • MongoDB, Redis, Apache Cassandra 등

3. 관계형 데이터베이스 만들기

구성 요소


• 테이블은 행과 열로 구성
• 속성은 데이터의 특성을 나타내는 가장 작은 논리적 단위를 의미
• 튜플은 속성이 모여 구성된 각각의 행을 의미
• 속성이 가질 수 있는 값의 집합을 도메인이라고 함
• 관계가 있다면 하나의 속성으로 테이블을 연결해서 데이터를 효과적으로 관리

4. 데이터베이스 정의어

SQL(Structured Query Language)

: 관계형 데이터베이스를 활용하기 위해 사용하는 표준 언어

  1. 데이터 정의어(DDL, Data Definition Language): 테이블과 같은 데이터 구조 정의
  2. 데이터 조작어(DML , Data Manipulation Language): 데이터 조회 및 검색
  3. 데이터 제어어(DCL , Data Control Language): 데이터베이스에 접근하는 권한 관리

데이터 타입

자료형의미
VARCHAR(n)nBytes 크기의 가변 길이 문자열 데이터
INT정수형 숫자 데이터(4Bytes)
FLOAT4Bytes 크기의 부동 소수점 데이터
DATETIME날짜와 시간 형태의 기간 데이터
(YYYY-MM-DD HH:MM:SS)

테이블 정의하기

CREATE TABLE 테이블명(속성1 데이터타입1, 속성2 데이터타입2, ...);

정의한 테이블 확인하기

데이터베이스의 테이블 목록을 확인

SHOW TABLES;

테이블의 구조를 확인

DESC customer;

데이터 삽입하기

속성값을 넣지 않는 경우 default 값인 NULL이 삽입됨

INSERT INTO 테이블명(속성1, 속성2, ...) 
VALUES(속성값1, 속성값2, ...);

데이터 출력하기

SELECT 속성1, 속성2 FROM 테이블명;

테이블 수정하기

컬럼 추가: ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 제약조건
컬럼 수정: ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 데이터타입 제약조건
컬럼 이름 변경: ALTER TABLE 테이블명 CHANGE COLUMN 기존컬럼명 새로운컬럼명 데이터타입 제약조건
컬럼 삭제: ALTER TABLE 테이블명 DROP COLUMN 컬럼명
테이블 이름 변경: ALTER TABLE 기존테이블명 RENAME 새로운테이블명

테이블 삭제하기

DROP TABLE 테이블명;
profile
👩🏻‍💻

0개의 댓글