*교재는 혼자 공부하는 SQL
A. DBMS의 정의
- 데이터베이스에는 다양한 데이터가 저장되어 있다.
- 이러한 데이터베이스를 관리하고 운영하는 소프트웨어가 DBMS(Database Mamagement System)
- 여러 명의 사용자나 응용 프로그램과 실시간으로 공유하고 동시에 접근이 가능해야 한다.
- 예금 계좌 주인, 은행 직원, 인터넷 뱅킹, ATM 기기 등에서 모두 동시에 접근이 가능해야 한다.
DBMS의 종류
MySQL, 오라클, SQL 서버, MariaDB 등
DBMS의 분류
계층형, 망형, 관계형, 객체지향형, 객체관계형
a. 계층형
- 은행업무에 아주 최적화
- 요즘은 잘 안쓴다.
- 트리 형태
b. 관계형 (RDB)
- 테이블, 열, 행
- 2차원구조 (격자구조, 모눈형식)
1. 데이터베이스 서비스명
2. 데이터베이스 계정명
3. 데이터베이스 설치 도메인과 포트
B. 데이터베이스 모델링
- 테이블의 구조를 미리 설게, 건출 설계도 그리는 과정 -
- 세상에서 사용되는 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정
- 폭포수 모델의 업무 분석과 시스템 설계 단계에 해당한다.
- 여기서가장 중요한 데이터베이스 개체인 테이블 구조가 결정된다.
- 물론 테이블이 나오기 위해서는 다소 복잡한 절차를 거쳐야 한다. (정규화)
더보기
폭포수 모델
ex. 슈퍼마켓 물건을 온라인으로도 판매하기 위해 인터넷 쇼핑몰을 구축
- 프로젝트 계획
- 업무 분석: 슈퍼마켓에서 업무가 어떻게 돌아가는지 파악한다. 물건은 어디서 들어오고 어떻게 계산하며 재고는 어떻게 관리하는지.
- 시스템 설계: 업무 분석을 컴퓨터에 적용시키기 위해서 알맞은 형태로 다듬는 과정 (UI/UX 포함)
- 프로그램 구현: 프로그래밍 언어로 코딩하는 단계
- 테스트: 코딩된 프로그램에 오류가 없는지 확인
- 유지보수: 온라인 쇼핑몰을 운영하면서 문제점을 보완하고 기능을 추가
- 테이블이 나오기 위해서는 다소 복잡한 절차를 거쳐야 한다. (정규화)
용어
- 데이터(data): 하나하나의 단편적인 정보
- 테이블(table): 회원이나 제품의 데이터를 입력하기 위해 표 형태로 표현한 것.
- 데이터베이스(Database): 테이블이 ㅉ저장되는 저장소. 데이터를 저장하는 곳.
- DBMS: 데이터베이스 관리 시스템 또는 소프트웨어. (ex. MySQL)
- 열/컬럼/필드(column): 테이블의 세로. 각 테이블은 여러 개의 열로 구성된다.
- 열 이름: 각 열을 구분하기 위한 이름. 열 이름은 각 테이블 내에서는 서로 달라야 한다.
- 데이터 형식: 열에 저장된 데이터 형식. 숫자형, 문자형. 데이블을 생성할 때 열 이름과 함께 지정해준다.
- 행/로우/레코드(row): 실질적인 진짜 데이터. 즉 행의 개수가 데이터의 개수다.
- 기본 키/주키: 각 행을 구분하는 유일한 열. 중복되어서도 안 되고, 비어 있어서도 안 된다.
- SQL: DBMS가 알아듣는, 구조화된 질의 언어
데이터베이스 구축 절차
데이터베이스 만들기 → 테이블 만들기 → 데이터 입력/수정/삭제하기 → 데이터 조회 →활용하기
CRUD
- 테이블은 2차원의 표 형태로 이루어져 있으며, 각 열에 해당하는 데이터를 한 행씩 입력(C)할 수 있다.
- 필요하다면 행에 입력된 데이터를 수정(U)하거나 삭제(D)할 수 있다.
- 마지막으로 입력이 완료된 데이터를 조회(R)에서 활용할 수 있다.
DB 만들기
Table 만들기
데이터 입력하기
데이터 입력
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 |