데이터베이스 모델링 : 테이블 구조를 미리 설계하는 개념 즉, 업무 분석과 시스템 설계 단계
대표적으로 폭포수 모델을 사용하여 프로젝트 진행
[참고]
폭포수 모델(Waterfall model) : 소프트웨어 개발 절차 중 한 가지로, 각 단계가 구분되어 프로젝트의 진행 단계가 명확하다. 하지만 문제가 발생할 경우 다시 앞 단계로 돌아가기 어려움
(1) 프로젝트 계획 -> (2) 업무 분석 -> (3) 시스템 설계 -> (4) 프로그램 구현 -> (5) 테스트 -> (6) 유지보수
프로젝트(project) : 현실에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정
= 대규모 소프트웨어를 작성하기 위한 전체 과정
데이터베이스 모델링(Database modeling) : 현실 세계의 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정 즉, 실제 데이터를 테이블로 변경하기위한 작업
How? 실제 작업을 나타낼 수 있는 특징들을 추출해서 테이블 형태의 데이터베이스로 만들기
Mac에서 SQL DB 설치하기(몬테레이[Monterey])
기존에 설치했던 Workbench에서 local 연결을 시도했는데 계속 Operation in progress 창에서 Please stand by... 만 뜨고 넘어가지 않았다... 후.. 최근 맥os를 몬테레이로 업데이트를 했더니 버전이 안맞아서 그런듯하여 MySQL 제거 후 재설치:(
[참고] 맥에서 MySQL 설치하기
(0) 우선 Homebrew가 설치되어 있어야 한다
# homebrew가 이미 설치되어 있고 사용한지 오래되었다면 업데이트 먼저!
brew update
# mysql설치
brew install mysql
# 설치.. 꽤 오래걸리지만 설치를 완료했다면 재실행하여 확인하기
brew services restart mysql
# 한번 더 list에 mysql이 있는지 확인
brew list
# SUCCESS!를 확인했다면 MySQL 설정하기
mysql_secure_installation
# root키 설정(low/medium/strong 조건 확인하여 원하는 설정으로 선택해주고 password 설정)
## Do you wish to continue with the password provided? 설정한 패스워드 사용할건지
## Remove anonymous users? 사용자 계정 생성하지 않고 이용하는 것을 방지할건지
## Disallow root login remotely? 원격으로 root 로그인 허용할건지
## remove test database and access to it? 테스트 디비와 허용을 삭제할건지
# 모든 설정 마쳤으면
mysql.server stop
- MySQL Workbench 설치하기
https://downloads.mysql.com/archives/workbench/
맥os 유형에 따라 다운로드 진행하면 완료!
* 테이블 설계란?
: 열 이름과 데이터 형식을 지정하는 것
회원테이블을 설계해보면 아래 표와 같음
열 이름(한글) | 영문 이름 | 데이터 형식 | 최대 길이 | 널 허용 안 함(Not Null) |
아이디(기본 키) | member_id | 문자(CHAR) | 8글자 | Yes |
회원 이름 | member_name | 문자(CHAR) | 5글자 | Yes |
주소 | member_addr | 문자(CHAR) | 20글자 | No |
➔ 아이디, 회원 이름, 주소 3개의 열로 구성
➔ 데이터 형식은 문자(Character)로, 각각 최대 길이도 지정
* 데이터 형식에는 숫자(INT), 날짜(DATE) 등 있음
➔ 꼭 필요한 아이디와 회원 이름은 NOT NULL로, 넣지 않아도 되는 주소는 NULL 허용으로 설계
SELECT * FROM member;
SELECT member_name, member_addr FROM member;
SELECT * FROM member WHERE member_name = '아이유';
* 스키마(Schema) : MySQL 안의 데이터 베이스
* 데이터 형식(Data Type) : 문자형(CHAR), 정수형(INT) 등과 같이 열에 저장될 데이터 형식
* SQL 예약어 : SELECT, FROM, WHERE
- 인덱스(Index)
: 데이터를 조회할 때 결과 도출 시간을 줄여줌
Index Scan을 통해 생성된 테이블에서 특정 데이터를 빠르게 찾을 수 있음
CREATE INDEX idx_member_name ON member(member_name)
- 뷰(View)
: 가상의 테이블
실제 데이터를 가지고 있지 않으며, 실제 테이블에 연결(link)된 개념(like 바로 가기 아이콘)
CREATE VIEW member_view
AS
SELECT * FROM member;
- 스토어드 프로시저(Stored Procedure)
: MySQL에서 제공하는 프로그래밍 기능으로, 자주 사용하는 여러 개의 SQL 문을 하나로 묶어서 편리하게 사용할 수 있음
아래와 같이 설정해 주면 CALL myProc();으로 두 개의 SQL문을 실행한 결과값이 도출 됨
DELIMITER //
CREATE PROCEDURE myProc() # 스토어드 프로시저 이름 지정
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER;
[혼자 공부하는 SQL] Chapter05. 테이블과 뷰 (0) | 2022.02.13 |
---|---|
[혼자 공부하는 SQL] Chapter04. SQL 고급 문법 (0) | 2022.02.13 |
[혼자 공부하는 SQL] Chapter03. SQL 기본 문법 (0) | 2022.01.22 |
[혼자 공부하는 SQL] Chapter01. 데이터베이스와 SQL (0) | 2022.01.12 |
댓글 영역