D1. 데이터베이스 개요

0ㅑ채
|2024. 1. 10. 17:27

*교재는 혼자 공부하는 SQL

 

A. DBMS의 정의

  • 데이터베이스에는 다양한 데이터가 저장되어 있다.
  • 이러한 데이터베이스를 관리하고 운영하는 소프트웨어가 DBMS(Database Mamagement System)
  • 여러 명의 사용자나 응용 프로그램과 실시간으로 공유하고 동시에 접근이 가능해야 한다.
  • 예금 계좌 주인, 은행 직원, 인터넷 뱅킹, ATM 기기 등에서 모두 동시에 접근이 가능해야 한다.

 

DBMS의 종류

MySQL, 오라클, SQL 서버, MariaDB 등

 

DBMS의 분류

계층형, 망형, 관계형, 객체지향형, 객체관계형

 

a. 계층형

  • 은행업무에 아주 최적화
  • 요즘은 잘 안쓴다.
  • 트리 형태

b. 관계형 (RDB)

  • 테이블, 열, 행
  • 2차원구조 (격자구조, 모눈형식)

1. 데이터베이스 서비스명

2. 데이터베이스 계정명

3. 데이터베이스 설치 도메인과 포트

 

 

 

B. 데이터베이스 모델링

  • 테이블의 구조를 미리 설게, 건출 설계도 그리는 과정 -
  • 세상에서 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정
  • 폭포수 모델의 업무 분석시스템 설계 단계에 해당한다.
  • 여기서가장 중요한 데이터베이스 개체인 테이블 구조가 결정된다.
  • 물론 테이블이 나오기 위해서는 다소 복잡한 절차를 거쳐야 한다. (정규화)
더보기

폭포수 모델 

ex. 슈퍼마켓 물건을 온라인으로도 판매하기 위해 인터넷 쇼핑몰을 구축

  1. 프로젝트 계획
  2. 업무 분석: 슈퍼마켓에서 업무가 어떻게 돌아가는지 파악한다. 물건은 어디서 들어오고 어떻게 계산하며 재고는 어떻게 관리하는지.
  3. 시스템 설계: 업무 분석을 컴퓨터에 적용시키기 위해서 알맞은 형태로 다듬는 과정 (UI/UX 포함)
  4. 프로그램 구현: 프로그래밍 언어로 코딩하는 단계
  5. 테스트: 코딩된 프로그램에 오류가 없는지 확인
  6. 유지보수: 온라인 쇼핑몰을 운영하면서 문제점을 보완하고 기능을 추가
  • 테이블이 나오기 위해서는 다소 복잡한 절차를 거쳐야 한다. (정규화)

 

용어

  • 데이터(data): 하나하나의 단편적인 정보
  • 테이블(table): 회원이나 제품의 데이터를 입력하기 위해 표 형태로 표현한 것.
  • 데이터베이스(Database): 테이블이 ㅉ저장되는 저장소. 데이터를 저장하는 곳. 
  • DBMS: 데이터베이스 관리 시스템 또는 소프트웨어.  (ex.  MySQL)
  • 열/컬럼/필드(column): 테이블의 세로. 각 테이블은 여러 개의 열로 구성된다.
  • 열 이름: 각 열을 구분하기 위한 이름. 열 이름은 각 테이블 내에서는 서로 달라야 한다.
  • 데이터 형식: 열에 저장된 데이터 형식. 숫자형, 문자형. 데이블을 생성할 때 열 이름과 함께 지정해준다. 
  • 행/로우/레코드(row): 실질적인 진짜 데이터. 즉 행의 개수가 데이터의 개수다.  
  • 기본 키/주키: 각 행을 구분하는 유일한 열. 중복되어서도 안 되고, 비어 있어서도 안 된다.
  • SQL: DBMS가 알아듣는, 구조화된 질의 언어

 

데이터베이스 구축 절차

데이터베이스 만들기 → 테이블 만들기 → 데이터 입력/수정/삭제하기 → 데이터 조회 →활용하기

 

CRUD

  • 테이블은 2차원의 표 형태로 이루어져 있으며, 각 열에 해당하는 데이터를 한 행씩 입력(C)할 수 있다.
  • 필요하다면 행에 입력된 데이터를 수정(U)하거나 삭제(D)할 수 있다. 
  • 마지막으로 입력이 완료된 데이터를 조회(R)에서 활용할 수 있다.

 

 

DB 만들기

Create Schema
DB 이름입력
Apply

 

 

Table 만들기

 

Create Table 선택
열 이름, 데이터 형식, 기본 키 설정

 

데이터 입력하기

Apply

 

 

 

데이터 입력

INSERT INTO 'shop_db'.'member' ('member_id', 'member_name', 'member_addr') VALUES('carry', '머라이어', '미국 텍사스 사막');

 

데이터 수정

UPDATE 'shop_db'.'member' SET 'member_addr' = '영국 런던 먹자골목' WHERE ('member_id' = 'carry');

 

데이터 삭제

DELETE FROM 'shop_db'.'member' WHERE ('member_id' = 'carry');

 

데이터 활용

SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]

SELECT  member_name, member_addr FROM member;

SELECT  * FROM member WHERE member_name ='아이유';

 

 

 

데이터베이스 개체

  • 인덱스, 뷰, 스토어드 프로시저, 트리거, 함수, 커서 등의 개체는 모두 테이블과 연관이 있다.

 

인덱스

  • CREATE INDEX idx_member_name ON member(member_name);
  • 찾아보기 시간을 단축한다.

create view member_view
as 
select * from member;
  • 실제 데이터를 가지고 있지 않고, 진짜 테이블에 링크된 개념
  • 보안에 도움이 된다.
  • 긴 SQL문을 간략하게 만들 수 있다.

 

스토어드 프로시저

DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product  WHERE product_name = '삼각김밥' ;
END//
DELIMITER ;
CALL myProc();

 

 

'SQL' 카테고리의 다른 글

JOIN  (0) 2024.01.23
NoSQL  (1) 2024.01.23
D3. 데이터 자료형  (0) 2024.01.22
Transaction  (1) 2024.01.22
D2. SQL 문법  (1) 2024.01.22