[공공데이터 개발과정] 0508 SQL

송경근·2023년 5월 14일
0

DB 배우기

목록 보기
2/8
post-thumbnail

데이터베이스 모델링

: 테이블 구조를 미리 설계하는 개념

>제대로 된 DB를 구축하기 위해서

폭포수 모델 사용 > 위에서 아래로! 
	단계적 진행
	단점 : 다시 위로 올라가기가 어려움
테이블 구조 : Mysql이 자동으로 그려줌!

프로젝트 :

현실 세계에서 일어나는 업무를 컴퓨터시스템으로 옮겨놓는 과정

대규모 소프트웨어를 작성하기 위한 전체과정

기능이 복잡해짐 
	중복 문제.
	
	
폭포수 모델	에자일 모델
단계적 진행	수정, 업데이트, 배포
현업에서 70프로정도 	현업에서 30프로정도
	(늘어나는추세)

데이터베이스 모델링 : 정답이 없음!
	객체를 테이블로 변경하기 위한 과정

	내가 작성해야하는 프로젝트의 주제, 원하는 기능에 부합하게 만드는것이 필요함
	중복 x, 필수적인 정보
	>좋은 모델링~
	

	데이터 : 하나하나의 단편적인 정보
	
	테이블 : 회원이나 제품의 데이터를 입력하기위해 표 형태로 표현
	
	데이터베이스 : 테이블이 저장되는 장소
	
	DBMS : 테이터베이스 메니지먼트 시스템
	
	열 : 테이블의 세로 여러 개의 열(컬럼,필드)로 구성
	열 이름 : 각 테이블내에서는 서로 달라야 한다.
	테이터 형식 : 열에 저장될 데이터의 형식. 테이블을 생성할 때 열이름과 함께 지정>자료형
	
	행 : 실질적인 데이터,행의 개수가 데이터의 개수	
	
	기본 키(primary key,PK) : 기본 키 열은 각 행을 구분하는 유일한 값
		회원 id, 학번, 주민등록번호 등
		중복되면 안됨. NULL 안됨
		기본키는 하나만 지정. 1개의 열에 지정
		
	sql(Structured Query Language): 구조화된 질의 언어, 사람과 DBMS가 소통하기 위한 언어
	

	웹프로그래밍에서 회원가입
	>웹화면에서 일어남
		미리 입력한 sql 문이 실행되어 입력 수정 삭제가 일어남.


테이블 : 테이터베이스의 핵심 개체

	인덱스, 뷰, 스토어드 프로시저(함수) 등등의 개체가 있음.
	인덱스 : 데이터 조회 시 결과가 나오는 속도를 획기적으로 빠르게 해준다.
	뷰 : 테이블의 일부를 제한적으로 표현할 때 사용
	스토어드 프로시저 : sql에서 프로그래밍(JAVA 등)이 가능하도록 해줌
	트리거 : 잘못된 데이터가 들어가는것을 미연에 방지하는 기능
	
	

데이터베이스 시스템

각 조직에서 사용하던 데이터를 모아서 통합하고, 공유하여 생기는 장점을 이용하는 시스템
데이터베이스, 데이터 모델, DBMS, SQL 데이터베이스 사용자 등의 개념
-> 데이터베이스 시스템이해 가능!

학습 목표

db의 유형과 개념 및 특징
프로그램과 데이터가 컴퓨터에 어떻게 저장되는지
DBS의 구성요소

데이터베이스 : 데이터들의 집합
	데이터, 정보, 지식이 담김.
	우리 일상생활 대부분의 정보는 저장되고 관리되고 있음.
	교통카드, 앱(주문내역, 결제), SNS -> 데이터베이스에 저장
	
	모든 프로그램에 데이터베이스 존재

데이터: 관찰의 결과로 나타난 정량적, 정석적 실제값
정보 : 데이터에 의미를 부여한것 
지식 : 사물이나 현상에 대한 이해

데이터가 모이면 정보, 정보가 모이면 지식

데이터베이스: 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것.

데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행
	검색과 변경의 빈도에 따라서 시스템 구축 난이도 결정
변경이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입,삭제,수정 등의 작업을 말함

데이터베이스의 개념 및 특징

통합된 데이터
	데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상을 제거
저장된 데이터
	문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터 의미
운영 데이터
	조직의 목적을 위해 사용되는 데이터 업무 검색 목적으로 저장된 데이터
공용 데이터
	한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터

특징
실시간 접근성
	실시간으로 서비스 
계속적인 변화
	테이터값은 시간에 따라 삽입 수정 삭제에 따라 바뀐 데이터를 저장
동시 공유
	여러 사용자에게 병행 공유. 데이터베이스에 접근하는 프로그램이 여러 개 있다
내용에 따른 참조
	데이터의 물리적 위치가 아니라 데이터 값에 따라 참조

데이터베이스 시스템 : 각 조직에서 사용하던 데이터를 모아 통합하고 서로 공유하여 생기는 장점 이용

DBMS : 사용자와 데이터를 연동시켜주는 소프트웨어

데이터베이스: 데이터를 모아둔 토대. 물리적으로 컴퓨터 내부 하드디스크에 저장

데이터 모델: 데이터 저장 기법. 눈에 보이지않는 논리적인 개념 데이터가 저장되는 스타일
ex) 가전제품 모델번호 등

마당 서점 예시
초기 : 적은 양의 데이터를 저장하고 검색
현재 : 데이터 자체의 발생양이 증가하고 H/W기술이 발전하면서 더 많은 데이터를 저장
인터넷, 소셜네트워크, 전자 상거래 등 대량의 데이터가 발생하는 서비스 제공

지점이 생기고 본점과는 이미 구축된 전산 시스템을 전용선 연결
본점은 각 지점에서 일어나는 매출과 재고 관리
매월 일정금액을 통신사에 지불
>DBMS 구축하여 프로그램 연동

DBMS 필요성
	대량의 데이터를 효율적으로 관리하고 운영하기 위해 등장
	사용언어 : SQL -> DBMS를 원활하게 사용하기위해서 배워둬야


정보 시스템의 발전 : 기업 비즈니스 모델은 정보통신 기술과 함께 발전
파일 시스템 -> 데이터베이스 시스템 -> 웹 데이터베이스 시스템
-> 분산 데이터베이스 시스템 (정보통신기술이 발전함에 따라)

파일 시스템

데이터를 파일 단위로 파일 서버에 저장
각 컴퓨터는 LAN을 통하여 파일 서버에 연결.
각 응용 프로그램이 독립적으로 파일을 다루기 때문에 중복될 가능성 존재
동시에 파일을 다루기 때문에 일관성 훼손 가능성 존재
데이터베이스 시스템
DBMS를 도입하여 데이터를 통합 관리하는 시스템
데이터를 가진 쪽을 서버, 외부에서 데이터 요청하는 쪽을 클라이언트라고 함
DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지
엑셀과 같은 프로그램은 데이터의 집합을 관리, 운영하는 측면에서 DBMS로 볼수 있으나
대용량의 데이터를 관리하거나 여러 사용자가 공유하는 개념과는 거리가 있기 때문에
DBMS로 볼 수 없다.

	웹 데이터베이스 시스템
	데이터베이스를 웹에서 사용할 수 있도록 서비스
	요청과 전달이 같이 동작 (request, response)
	분산 데이터베이스 시스템 : 비용 상승, 문제가 발생했을 경우에 문제 발생한 기능 외엔 문제없이 동작
	여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
	대규모의 응용 시스템에 사용됨
	이렇게 발전해 왔다


정보 시스템의 발전 : 기업 비즈니스 모델은 정보통신 기술과 함께 발전
파일 시스템 -> 데이터베이스 시스템 -> 웹 데이터베이스 시스템
-> 분산 데이터베이스 시스템 (정보통신기술이 발전함에 따라)
파일 시스템
데이터를 파일 단위로 파일 서버에 저장
각 컴퓨터는 LAN을 통하여 파일 서버에 연결.
각 응용 프로그램이 독립적으로 파일을 다루기 때문에 중복될 가능성 존재
동시에 파일을 다루기 때문에 일관성 훼손 가능성 존재
데이터베이스 시스템
DBMS를 도입하여 데이터를 통합 관리하는 시스템
데이터를 가진 쪽을 서버, 외부에서 데이터 요청하는 쪽을 클라이언트라고 함
DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지
엑셀과 같은 프로그램은 데이터의 집합을 관리, 운영하는 측면에서 DBMS로 볼수 있으나
대용량의 데이터를 관리하거나 여러 사용자가 공유하는 개념과는 거리가 있기 때문에
DBMS로 볼 수 없다.

	웹 데이터베이스 시스템
	데이터베이스를 웹에서 사용할 수 있도록 서비스
	요청과 전달이 같이 동작 (request, response)
	분산 데이터베이스 시스템 : 비용 상승, 문제가 발생했을 경우에 문제 발생한 기능 외엔 문제없이 동작
	여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
	대규모의 응용 시스템에 사용됨
	이렇게 발전해 왔다

파일 시스템과 DBMS

데이터는 파일 또는 DB 시스템에 저장
컴퓨터에 데이터를 저장 하는 방법
	1. 프로그램 내부에 저장
	2. 파일 시스템
	3. DBMS 활용

문제점을 해결하기 위해 파일 시스템 이용
	데이터를 프로그램과 분리하여 별도의 파일에 저장
	컴퓨터 디스크에 따로 저장되고 컴퓨터가 꺼진 상태에서도 데이터 값을 유지
	
	문제점:
		1. 같은 파일을 두개의 프로그램이 공유하는 것이 운영체제의 도움 없이는 불가능
		2. 데이터의 구조가 바뀌게 되면 다시 데이터 구조를 정의하고 컴파일 해야함
		3. 사용중입니다 라는 오류 / 동기화(싱크로나이즈)를 해줘야한다.
	

SSMS

이게 발전해서 DBMS 만들어짐

DBMS

좋은거다

값이 바뀌어도 프로그램을 다시 컴파일할 필요가 없다!

데이터베이스 시스템의 구성

데이터 베이스언어
DBMS
데이터 모델

요청/응답 발생
request / response

DML, DDL

SQL

데이터 정의어 DDL : create, alter, drop
데이터 조작어 DML : select, insert, delete
데이터 제어어 DCL : grant, revoke > 데이터의 사용 권한 관리



조작어가 제일 많이 사용됨!
기본 구조
	SELECT - FROM - WHERE(조건)

![](https://velog.velcdn.com/images/kgsong8020/post/72ef2dac-1ce7-438b-92cc-98df91b3f2ad/image.png)





표준 sql : 국제 표준화 기구에서 정하여 발표

DBMS : 사용자와 DB를 연결시켜주는 S/W

데이터 모델 구분 기준
	데이터 간의 관계를 표현하는 방법 차이
	

연결되는 방법이 없음.

지저분함.



3단계 데이터베이스 구조 : 데이터를 보는 관점을 세 단계로 분리
데이터베이스의 복잡한 구조를 단순화하여 표현

스키마 : 데이터베이스의 구조를 정의하는 전체적인 설계
데이터베이스에 있는 다양한 개체들의 정의와 구조를 나타내는 모음
사용하는 이유 : 백업이나 복원 과정에 중요한 역할

외부 스키마
	일반 사용자, 응용 프로그래머
	전체 데이터베이스 중 하나의 논리적인 부분
	여러 개 있을 수 있음
	서브 스키마, 뷰의 개념
개념 스키마
	전체 데이터베이스의 정의
	DBA가 관리
	하나의 데이터베이스에 하나의 개념 스키마가 존재
내부 스키마
	물리적 저장장치에 데이터베이스가 실제로 저장되는 방법의 표현
	하나의 내부 스키마 존재
	인덱스, 데이터 레코드, 데이터 압축 등


개념스키마를 조금 더 디테일 하게 보는게 내부 스키마

3단계 데이터 베이스 구조의 특징 : 데이터 독립성
				하위 단계의 데이터를 추상화하여 상위 단계에서 그 세부사항을 숨김
				상호 간섭이 일어나지않도록 처리

관계 데이터 모델의 개념

무결성 제약조건

관계 대수

관계 데이터 모델의 개념 :

수학의 집합 이론에 근거 -> 타 모델에 비해 이론적 토대가 튼튼
관계 데이터 모델이 적용된 SQL언어는 데이터를 쉽게 표현하는 장점
릴레이션: 행과 열로 구성된 테이블

데이터를 테이블 형태로 표현한 것

첫째 행의 경우 네개의 집합에서 각각 원소 한개씩 선택되어 관계를 맺음.
관계 ( relationship )
	두가지 개념이 있음.
		실제 데이터들의 집합으로 이루어짐
		식별 가능한 값을 이용해 릴레이션 사이를 연결해주는 역할

	행 : 튜플
	열 : 어트리뷰트
	열의 이름 : 스키마 ->관계 데이터베이스의 릴레이션이 어떻게 구성되는지 정보를 담고 있는 지에 대한 기본적인 구조를 정의 릴레이션의 첫 행인 헤더에 나타남.
	속성값을 가짐
	데이터 : 인스턴스 -> 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터들의 집합
	











	 
	
profile
개발자가 되려는 학생입니다

0개의 댓글