본문 바로가기

2023.11.21-2024.05.31

1129수업 7일차(오라클)

--1129 1교시 복습
--데이터 모델링 
:현 세계에서 사용되는 작업이나 사물들을 DBMS의 데이터베이스 개체로 옮기는 과정;
,현실에서 쓰이는 것을 테이블로 변경하기 위한 작업;
--데이터 모델링의 3단계 
: 개념적 모델링, 논리적 모델링, 물리적 모델링;
--ERD에서 사각형 : 개체 Entity, 마름모:관계 Relationship, 타원:속성 Attribute;
--Entity(엔터티, 개체)란? 
:사람이나 사물과 같이 현실 세계에서 조직을 운영하는 데 꼭 필요한 구별되는 모든것;
다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음;
--Attribute(애트리뷰트, 속성)?
:개체나 관계가 가지고 있는 고유의 특성, 의미 있는 데이터의 가장 작은 논리적 단위
--다중 값 속성 : 값을 여러 개 가질 수 있는 속성 
예) 고객 개체의 연락처 속성(여러곳), 책 개체의 저자 속성(공동저자);
--복합 속성 : 의미를 분해할 수 있는 속성
예) 고객 개체의 주소 속성(도,시,동, 우편번호 등으로 세분화);
예) 고객 개체의 생년월일 속성(연,월,일로 의미 세분화);
--유도 속성 : 기존의 다른 속성의 값에서 유도되어 결정되는 속성(값이 별도로 저장되지 않음)
예) 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성
예) 고객 개체의 출생연도 속성으로 계산되는 나이 속성
--키(key)phase 페이즈
primary key : 기본키, 후보키 중에서 기본적으로 사용하기 위해 선택한 키;
개체무결성 ,not null,unique;
예) 고객 릴레이션의 기본키 : 고객아이디;
foreiga key : 대체키, 기본키로 선택되지 못한 후보키;
예) 고객 릴레이션의 대체키 : (고객이름, 주소);
관계형, 참조;
--차수(degree)란? : 속성의 개수
--카디널리티(cardicality) : 하나의 릴레이션에서 투플의 전체 개수
--매핑 카디널러티 : 일대일, 일대다, 다대다
일대일 : 남편과 아내 개체의 혼인 관계 ;
일대다 : 부서와 사원 개체의 소속 관계 ;
다대다 : 고객과 책 개체의 구매 관계 ;
--도메인 : 하나의 속성이 가질 수 있는 모든 값의 집합,
속성 값을 입력 및 수정할 때 적합성 판단의 기준이 됨;
일반적으로 속성의 특성을 고려한 데이터 타입으로 정의;
--스키마 : 논리전 단계에서 데이터베이스의 전체 구조, 
--무결성의 종류

개체무결성 : 기본키를 구성하는 모든 속성은 널 값을 가질 수 없는 규칙 ,고객 릴레이션

참조무결성 : 외래키는 참조할 수 없는 값을 가질 수 없는 규칙,

 외래키 속성이 널 값을 가진다고 해서 참고 무결성 제약조건을 위반한 것은 아니다

도메인무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정

--IE(Information Eengineering) 표기법: Crow's foot

 

 

--1129 수업
SELECT * FROM TAB;
DESC BOOK;
--BOOK 테이블이 어떻게 구성되어 있는지 보여줌

SELECT *FROM BOOK;

--중복없이 출판사의 개수
SELECT DISTINCT(PUBLISHER) FROM BOOK;
--출판사별로 출간한 책의 개수
SELECT PUBLISHER, COUNT(BOOKNAME) FROM BOOK
GROUP BY PUBLISHER;

--축구에 관한 책의 제목과 출판사는?
SELECT BOOKNAME, PUBLISHER FROM BOOK
WHERE BOOKNAME LIKE '%축구%';


--박지성이 주문한 책의 권수는?(조인)
SELECT C.NAME, COUNT(*)
FROM CUSTOMER C JOIN ORDERS O USING(CUSTID)
WHERE C.NAME='박지성' GROUP BY CUSTID, C.NAME;

--박지성이 산 책 구입가격의 총액
SELECT SUM(O.SALEPRICE) AS 구입가격
FROM CUSTOMER C JOIN ORDERS O USING(CUSTID)
WHERE C.NAME ='박지성'
GROUP BY C. NAME;

SELECT * FROM CUSTOMER;
SELECT * FROM ORDERS;
SELECT *FROM BOOK;

--박지성이 산 책의 제목과 출판사는?
SELECT B.BOOKNAME, B.PUBLISHER
FROM CUSTOMER C JOIN ORDERS O USING(CUSTID)
JOIN BOOK B USING(BOOKID)
WHERE C.NAME ='박지성';

--2014년 7월4일~7월7일 동안에 주문받은 도서의 BOOKID
SELECT BOOKID
FROM ORDERS O, 
WHERE ORDEDATE=2014/07/04~2014/07/07

SELECT B.BOOKNAME, O.ORDERDATE FROM BOOK B JOIN ORDERS O USING(BOOKID)
WHERE O.ORDERDATE BETWEEN TO_DATE('14/07/04') AND TO_DATE('14/07/07'); 

'2023.11.21-2024.05.31' 카테고리의 다른 글

1130수업8일차1(JAVA)  (0) 2023.12.01
1129수업 7일차(JAVA)  (0) 2023.11.29
231128복습(오라클 7,8교시)  (0) 2023.11.28
231128 6일차(오라클)  (0) 2023.11.28
231127 복습  (0) 2023.11.27