정지된 자율운영데이터베이스 정지 풀기
DB시작하기. 아래 사이트에서 하거나 DBeaver로 실행하기
라이브서버 : https://livesql.oracle.com/apex/f?p=590:1:2451693410487::NO:RP::
데이터 가져와서 사용하는 사이트 링크
https://www.data.go.kr/index.do
DBeaver로 SQL 생성
새로운 SQL 편집기 만들기
CREATE 나 INSERT 나 DROP 부분에서 CRTL + ENTER를 누르면 처리실행이된다.
데이터베이스(DB; DataBase)
데이터베이스 = DBMS = 데이터베이스시스템
DB를 사용하는 이유 : 쉽게 말하자면 데이터 저장을 위함
어느 한 조직의 다양한 응용프로그램들이 공동으로 사용하는 데이터들을 통합하여 저장한 운영 데이터의 집합
→ 사람들이 필요로 하는 데이터를 모아둔 것
공용데이터 (Share Data)
한 조직의 여러 응용프로그램이 공동으로 사용하는 것
여러사용자가 서로 다른 목적으로 공유함
통합된 데이터 (Integrated Data)
여러 부서에서 사용되는 데이터를 한 곳에 모아서 공동 관리 하는 것
최소한의 중복, 통제된 중복
저장된 데이터 (Stored Data)
컴퓨터가 접근할 수 있는 디스크와 같은 저장매체에 저장된 것
운영 데이터 (Operational Data)
조직의 운영에 기본적으로 반드시 필요한 데이터를 저장하는 것
조직의 고유한 기능을 수행하는 데 필수적인 데이터를 저장하는 것
데이터베이스의 특징
- 실시간 접근성
- 계속적인 변화
- 동시 공용
- 내용에 의한 참조
데이터베이스 관리시스템
DBMS (Database Management System)
데이터베이스를 생성 및 관리해주는 기능을 제공하는 소프트웨어 패키지 / 시스템
데이터와 응용프로그램 사이의 중계자
모든 사용자와 응용 프로그램들이 데이터베이스를 공유할 수 있도록 지원해주는 범용 목적의 소프트웨어 시스템
데이터베이스 관리시스템의 기능
- 데이터정의기능
- 데이터조작기능
- 데이터제어기능
관계형 데이터 모델
Structure 구조 - 릴레이션 또는 테이블
Operation 연산 - 관계 대수
Constraint 제약조건 - 무결성 제약조건
릴레이션의 특징
튜플의 유일성
릴레이션은 튜플의 집합임
집합은 중복을 허용하지 않음
튜플의 무순서성
릴레이션은 튜플의 집합임
집합에서 원소들 간의 순서는 없음
속성의 무순서성
릴레이션 스키마는 속성들의 집합임
속성의 원자성
속성의 값은 원자값임논리적으로 더 분해할 수 없음
키 (Key)
하나의 테이블 내에서 각 튜플의 유일하게 식별할 수 있는 속성들의 집합
즉 키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때
튜플들을 서로 구분 할 수 있는 기준이 되는 애트리뷰트를 말한다.
- 유일성 : 하나의 키값으로 하나의 튜플만을 유일하게 식별할수있어야한다
- 최소성 : 모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성되어야한다.
후보키
릴레이션의 특징 : 튜플의 유일성후보키 : 튜플의 유일성을 유지시키는 최소속성집합
릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합.
즉 기본키로 사용할 수 있는 속성들 말한다.
하나의 릴레이션내에서는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나의 후보키가 존재.
후보키는 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 만족시켜야함
슈퍼키
유일성을 만족하는 속성집합
최소성을 만족하지않아도됨
일반적으로 후보키는 수퍼키의 부분집합임 ↔ 수퍼키는 후보키를 포함함
속성들의 집합으로 구성된 키, 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하나 최소성은 만족시키지못함
기본키
하나의 릴레이션에는 후보키가 여러개있을수 있음
여러개의 후보키중 DBA가 지정한 하나의 키임
특별히 선정된 주키로 중복된 값을 가질 수 없고, 한 릴레이션에서 특정 튜플을 유일하게 구별할 수있는 속성이다
후보키의 성질을 가짐 [+유일성+최소성] 튜플을 식별하기위해 반드시 필요한 키
기본키는 NULL값을 가질 수 없다.
대체키
후보키 중 기본키를 제외한 나머지 후보키
- 후보키 : {학번},{주민번호}
- 수퍼키 : {학번,이름,주소,주민번호}, {학번,이름,주소}, {학번,이름}, {이름,주소,주민번호}...
- 기본키 : {학번}
- 대체키 : {주민번호}
외래키
한 릴레이션 R1의 튜플과 다른 릴레이션 R2의 하나의 튜플과의 연관관계를 표시하기 위하여 사용함
R1의 속성집합 FK의 도메인이 R2의 기본키일때, FK를 R1의 외래키라 함
R1을 참조릴레이션, R2를 피참조 릴레이션이라고 함
*R1과 R2가 다른 릴레이션일 필요는 없음
외래키 : 다른 릴레이션의 기본키 , 외래키로 지정되면 참조릴레이션의 기본키에 없는 값은 입력할 수 없다.
*비유하자면
대통령후보 = 후보키
당첨된사람 = 기본키
기본키가 되지못한 키 = 대체키
다른나라대통령 = 외래키
무결성 제약조건
개체 무결성: 서로다른 튜플은 같을수 없음
기본키값은 언제고 어느때고 NULL값일 수 없다.
참조 무결성: 외래키값은 피참조릴레이션의 기본키값이거나 NULL값임
추가 지정을 통해 NULL을 가질수없다고 제약을 걸 수 있음
도메인 무결성: 속성 값은 해당 속성 도메인에 속한 값들 중 하나이어야함
DBMS는 데이터베이스의 상태변화(삽입,갱신,삭제)에도 항상 무결성 제약조건을 검사하고 유지시킴
SQL
관계형 데이터베이스 시스템(RDBMS)에서 데이터를 관리, 처리하기 위해 설계된 프로그래밍 언어
종합 데이터베이스언어 > 데이터정의 DDL , 조작 DML , 제어 DCL
무엇(what)을 표시하며 어떻게 (How)는 표시하지 않음 , 어떻게는 DBMS가 알아서 처리함
- DML - 데이터를 관리하기 위한 언어
- DDL - 릴레이션을 정의하기 위한 언어
- DCL - 사용자별로 데이터를 관리하고 접근하는 권한을 다루는 언어
SQL의 특징
1. 영어 문장과 비슷한 구문을 갖추고 있어 쉽게 배우고 사용할 수 있는 언어이다.
2. SQL은 데이터 연산에 대한 처리가 절차적으로 진행되지 않고, 데이터의 집합 단위로 처리된다. (필요에 따라 쏙쏙 사용)
3. 표준 SQL 문법이 존재해 DBMS 종류(Oracle, MSSQL, MySQL 등)에 얽매이지 않고 사용할 수 있다.
4. 릴레이션(relation), 튜플(tuple), 속성(attribute)과 같은 관계형 모델의 용어 대신 테이블(table), 행(row), 열(column)과 같은 일반적인 용어를 사용한다.
5. SQL은 기본적으로 대소문자를 구분하지 않는다. 다만 가독성을 위해서 주로 대문자를 사용
6. SQL 명령은 반드시 세미콜론(;)으로 끝나야 하고, 고유의 값은 따옴표(' ')로 감싸준다.
7. 한 줄 주석은 '--'를 앞에 붙여 사용하고, 여러 줄 주석은 /* */로 감싸준다.
출처: https://rebro.kr/147 [Rebro의 코딩 일기장:티스토리]
SQL 기본구문
DDL문 : 데이터 정의문
테이블 생성 : CREAT 문
CREATE TABLE 테이블명
(속성명 속성타입 [제약조건],
속성명 속성타입,
...
)
제약조건 : NOT NULL, PRIMARY KEY, UNIQUE
테이블 삭제 : DROP 문
DROP TABLE 테이블명;
테이블 구조변경 : ALTER 문
--속성추가
ALTER TABLE 테이블명 (ADD 속성명 속성타입)
--속성제거
ALTER TABLE 테이블명 (DROP 속성명 속성타입)
--속성 타입 변경
ALTER TABLE 테이블명 (ALTER 속성명 속성타입)
DML문 : 데이터 정의문
튜플 삽입 : INSERT 문
INSERT INTO 테이블명 (속성명, 속성명, ...)
VALUE (속성값, 속성값, ...)
튜플 변경 : UPDATE 문
UPDATE 테이블명
SET 속성명 = 수식
[WHERE 조건]
튜플 삭제 : DELETE 문
DELETE FROM 테이블명
[WHERE 조건]
SELECT 문
SELECT 속성명, 속성명 ...
FROM 테이블명
[WHERE 조건]
DCL문 : 데이터 제어문
트랜잭션 관련
COMMIT
ROLLBACK
사용자권한 제어관련
GRANT
REVOKE
DENY
테이블 생성 - 기본 데이터 타입
INSERT절
다양한 INSERT 구문
단일행입력 : 한번에 하나의 튜플을 테이블에 입력하는 방법
NULL의입력 : 데이터를 입력하는 시점에서 해당 속성값을 모르거나, 미확정일때 사용함
NOT NULL조건이 지정된 경우 입력 불가
서브쿼리를 이용한 데이터 삽입 : 한번에 여러 튜플을 넣을 수 있음
질의 결과 테이블 만들기 : 질의 결과로 만든 테이블은 기존 테이블의 속성명과 타입을 그대로 적용함
NOT NULL조건을 그대로 적용함, 다른 제약 조건은 적용되지 않음
테이블 구조의복사 : 상황에 따라서 기존 테이블과 동일한 구조를 지니는 테이블을 생성할 필요가 있음
테이블의 구조검색문 :
오라클) DESC 명령어로 테이블의 구조를 검색할 수 있음
이미지 원본 출처 : 앨리스 한국기술교육대학교 온라인평생교육원
'STUDY > DB SQL' 카테고리의 다른 글
[SQL] SQL의 JOIN에 대해 알아보자 (0) | 2022.07.26 |
---|---|
[SQL] SQL 키 종류와 예제 (0) | 2022.07.25 |
[SQL] 제약조건, 연산자, ORDER·GROUP BY (0) | 2022.07.25 |
[SQL] 테이블 기본 생성과 조작 (0) | 2022.07.24 |
[Oracle] 오라클 클라우드 Oracle Cloud 시작하기 (0) | 2022.07.05 |