-
데이터베이스와 SQLData Science/SQL 2024. 3. 13. 21:40
1. 데이터베이스와 SQL : 데이터베이스 알아보기
1. 데이터베이스와 DBMS
- 데이터베이스 : 데이터의 집합
- 여러 명의 사용자나 응용 프로그램과 공유, 동시 접근 가능
- DBMS : 데이터베이스를 관리하고 운영하는 소프트웨어
- 엑셀은 여러 사용자와 공유 X → DBMS 아님
2. DBMS의 종류
- 소프트웨어 = 특정 목적 처리를 위한 프로그램
3. DBMS의 발전과정
- 종이에 펜으로 기록
- 컴퓨터에 파일로 저장
- 파일 : 한 번에 한 명의 사용자만 작업 가능
- 불일치 문제가 발생 가능하지만 소량 데이터 처리 시 속도가 빠르고 사용법이 편리
- DBMS의 대두와 보급 by 에드거 프랭크 커드
- SQL : DBMS에서 활용하는 언어
4. DBMS의 분류
- 계층형 (1960) : 트리 형태, 변경이 까다로움
- 망형 (1970) : 계층형 문제 개선, 프로그래머가 모든 구조를 이해해야만 작성 가능
- 관계형 (RDBMS) : MySQL을 포함한 대부분의 DBMS, 모든 데이터가 ‘테이블’이라는 2차원 구조에 저장
- 객체지향형
- 객체관계형
5. SQL
- DBMS에서 사용하는 언어
- 표준 SQL : 국제표준화기구에서 정한 SQL의 표준
- 표준 SQL이 각 회사 제품의 특성을 모두 포용 X → 표준 SQL 준수, 제품의 특성 반영 가능
- 표준 SQL 익히면 된다..
- DBMS 제품
- 오라클 : PL/SQL
- SQL 서버 : T-SQL
- MySQL : SQL
1. 데이터베이스와 SQL : MySQL 설치하기
1. MySQL (1994)
- 오라클 사에서 제공하는 데이터베이스 관리 소프트웨어
- 대용량 데이터 관리, 운영 가능
- MariaDB : MySQL 초기 개발자가 오라클 사를 퇴사한 후 만들었다..
2. MySQL 서버와 MySQL 워크벤치의 관계
- MySQL 서버 : 작동은 하지만 화면에 보이지 않음
- MySQL 워크벤치 : MySQL 서버에 접속해서 사용하도록 해주는 도구
3. MySQL 설치
- root : MySQL 관리자 이름
MySQL 설치 오류 해결하기 : 3306 포.. : 네이버블로그 (naver.com) 를 이용해 포트번호 오류를 제거했다.
잘 작동하는지 확인해보기)
- SHOW DATABASES : 데이터베이스 목록 출력
2. 실전용 SQL 미리 맛보기 : 데이터베이스 모델링
1. 데이터베이스 모델링
- 사물이나 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정
- = 테이블로 변경하기 위한 작업
- 폭포수 모델 사용 : 진행 단계 명확, 앞 단계로 돌아가기 어려움
2. 프로젝트 진행 단계
- 프로젝트 : 대규모 소프트웨어를 작성하기 위한 전체 과정
- 프로그램 < 소프트웨어
3. 소프트웨어 개발 단계
- 프로젝트 계획
- 업무 분석
- 시스템 설계
- 프로그램 구현
- 테스트
- 유지보수
4. 전체 데이터베이스 구성
- 데이터 : 단편적인 정보
- 테이블 : 제품의 데이터를 입력하기 위해 표 형태로 표현한 것
- 데이터베이스 : 테이블이 저장되는 저장소, 각 데이터베이스는 이름이 달라야 함
- DBMS : 데이터베이스 관리 시스템/소프트웨어
- 열 : 테이블의 세로
- 열 이름 : 각 테이블 내에서는 서로 이름이 달라야 함
- 데이터 형식 : 열에 저장된 데이터의 형식. 테이블 생성 시 열 이름과 함께 지정
- 행 : 실질적인 진짜 데이터. 행 개수 == 데이터의 개수
- 기본 키 : 각 행을 구분하는 유일한 열. 1개의 열에 중복되지 않게 지정
- SQL : 구조화된 질의 언어, DBMS에서 소통하기 위한 언어
2. 실전용 SQL 미리 맛보기 : 데이터베이스 시작부터 끝까지
1. 테이블 생성
- 문자 : CHAR 예약어
- 정수 : INT
- 연, 월, 일 : DATE
- Null
- Not Null, NN
이런 식으로 테이블을 만든다.
2. 데이터 입력하기, 수정과 삭제하기
삭제는 화살표 모양 우클릭하기
3. 데이터 활용하기
- WHERE 조건 이용하기데이터 행 조회하기 : SELECT 문 활용하기
- 쿼리창 생성 후 데이터베이스 더블 클릭해서 선택하기!
- SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]
- : 모든 열
- 대소문자 구분 X, 세미콜론 필요(;)
- where 조건 이용하기
- *중요 용어 *
- 스키마 = 데이터베이스
- 문자형 : CHAR
- 정수형 : INT
- 널 : Null
- 널 허용 X : Not Null, NN
- 입력 : INSERT
- 수정 : UPDATE
- 삭제 : DELETE
- 조회 : SELECT
- 조건 : WHERE
- 예약어 : select 등..
- 세미콜론으로 끝을 표시
- 인텔리센스 : 워크벤치의 기능
2. 실전용 SQL 미리 맛보기 : 데이터베이스 개체
1. 인덱스
- 시간이 나오는 결과 감소
- 찾아보기 효과
- 인덱스 만들기 전
- 인덱스 지정하기 : ON 테이블명 ( 열 이름)
- key lookup = 인덱스로 찾음
- 인덱스 생성 여부에 따라 결과가 달라지는 건 아님. 시간 단축 여부
CREATE INDEX idx_member_name ON member(member_name)
2. 뷰
- 가상의 테이블, 진짜 테이블에 링크된 개념
- 크롬 들어가기 ≠ 크롬 더블클릭으로만 실행
- 뷰의 실체 : SELECT 문
- 장점 : 보안 강화, 더욱 간단한 SQL문 사용
- 회원 뷰 만들기
create view member_view as select * from member
- 회원 뷰에 접근하기
- 회원 테이블 접근 결과와 동일.
- 크롬 더블클릭 = 직접 실행 같은 개념.
select * from member_view
3. 스토어드 프로시저
- MySQL에서 제공하는 프로그래밍 기능 (코딩 할 수 있다)
- 여러 개의 SQL 문을 하나로 묶어 편리하게 사용 가능, 조건문과 반목문 등 사용 가능
- 스토어드 프로시저 이전
- 스토어드 프로시저 확인
- 왜인지 모를 이유로 myProc가 안 돌아가서… myProc2로 대체했다.
- 데이터베이스 개체 만들기 : create 개체_종류 개체_이름 ~~
- 데이터베이스 개체 삭제하기 : drop 개체_종류 개체_이름 ~~
- 왜인지 모를 이유로 myProc가 안 돌아가서… myProc2로 대체했다.
delimiter // create procedure myProc2() begin select * from member where member_name = '나훈아'; select * from product where product_name = '삼각김밥'; end // delimiter ; call myProc2();
4. 그 외
- 트리거
- 스토어드 함수
- 커서
- 데이터베이스 : 데이터의 집합