본문 바로가기
정규화 1정규화 - 컬럼이 원자값을 갖도록 테이블을 분해 2정규화 - 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것 완전 함수 종속은 기본키의 부분집합이 결정자가 되지 않게 하는 것 3정규화 - 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해 이행적 종속이라는 것은 A -> B, B -> C가 성립할 때 A -> C가 성립되는 것을 의미 위와같은 테이블에서 수강하는 강좌가 바뀌면 수강료도 갱신을 해줘야하는 번거로움이 있다 이행적 종속을 제거해서 학생 번호를 통해 강좌 이름을 참조하고, 강좌 이름으로 수강료를 참조하도록 테이블을 분해했다 BCNF 정규화 - 제3 정규화를 진행한 테이블에 대해 기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종.. 2023. 12. 26.
데베 기말 시험대비 PPT 관계대수 연습문제 = 2500000; -- 3번 개발부서에 근무하는 사원의 이름과, 부서명, 봉급을 검색하라 select e.empname, d.deptname, e.salary from employee e, department d where e.dno = d.deptno and d.deptname = '개발'; -- 4번 김창섭 또는 최종철이 속한 부서이고 부서명이 기획부서인 사원명, 부서명을 검색 select empname, deptname from employee e, department d where e.dno = d.deptno and (empname = '김창섭' or empname = '최종철') and d.deptname = '기획'; -- 5번 소속된 직원이 한명도 없는 부서의 번.. 2023. 12. 12.
데베 15주차 트리거 시험에 나온다 ! 인덱스를 쓰지 않은 이상 update를 할때는 기본키만 된다. 기말엔 erd를 주고 트리거를 만드는 형태로 문제가 나온다! 쿼리문의 트리거를 보면서 이해 트리거는 남발했다간 성능이 저하되고 락이 걸릴 수 있다, 신중하게 쓰자 시험범위 조인,내장함수,외부조인,서브쿼리, 뷰, 트리거, 관계대수, db설계이론 create database tritest; use tritest; create database trianswer; use trianswer; create table goods( pronum char(4) primary key, proname varchar(20) not null, price int, stock int default 0 ); create table ordering.. 2023. 12. 8.
데베 14주차 시험범위 내장함수 ~ 배운데 트리거 : 특정 조건이 만족하면 저절로 실행되는 함수 행트리거 for each row : 각각 실행 트리거 이벤트 after : 동작 수행 후 before : 동작 수행 전 문장 트리거 insert update delete 문 을 수행할떄 after insert on triaaa for each row begin sql 쿼리; end; 형태 트리거를 이용해서 한 테이블에 insert를 하면 다른 테이블은 delete나 update 등을 하게 할 수 있다 위의 트리거를 적용하기 위해서 상품, 주문 테이블을 만들어본다 create database examtri; use examtri; create table goods( proname varchar(20) primary key, .. 2023. 12. 1.
데베 13주차 데베 쪽지시험 문제 create database company; use company; create table department( deptno int not null primary key, deptname varchar(20) unique, floor int ); create table employee( empno int not null primary key, empname varchar(20) not null, title varchar(20) default '사원', manager int, salary int, dno int, foreign key(dno) references department(deptno) on update cascade on delete cascade ); INSERT INTO .. 2023. 11. 24.
데베 퀴즈 대비 유저 생성, 권한주기, 테이블 생성 -- ho 라는 사용자 생성, 비밀번호는 1111(반드시 작은 따옴표로) create user ho@localhost identified by '1111'; -- test 스키마를 만들고 변경할 수 있는권한을 ho에게 준다 grant all privileges on test.* to ho@localhost with grant option; -- 테이블 만들기, check 옵션, 기본키 auto_increment, 외래키 생성할때 어떻게 하는지를 중점적으로 보기 create table publisher( pubno char(4) check(pubno like 'p___') primary key, pubname varchar(20) default '한양출판사' check(.. 2023. 11. 16.
10주차 실기, 오픈북인데 소스 복붙안됨, • 내부함수 예제 use madang; -- 내장함수fh 도서 테이블의 출판사의 가격 평균을 백원단위 반올림 select publisher, round(avg(price),-2) from book group by publisher; select publisher, truncate(avg(price),-2) from book group by publisher; -- 고객 테이블 주소에서 대한민국을 한국으료 변경해서 검색 select replace(address,'대한민국','한국') from customer; -- 같은 성을 가진 사람이 몇 명이나 되는지 성별, 인원수를 구하기 = 20000; update book set price = 50000 where bookid =.. 2023. 11. 10.
페이징 페이징을 사용하는 이유 - 목록이 100만개일때 100만개 전부를 select로 한번에 가져오는 것은 엄청난 부하가 걸린다 데이터베이스에서 데이터 양을 적당히 끊어서 가져오는 것을 페이징이라고 한다, 페이징에는 2가지 형태가 있다 Offset based paging - 페이지 번호를 찾아서 이동하는 페이징 select* from book order by likes desc limit 10 offset 0; 데이터를 10개씩 가져와서 보여주고 0개씩 건너뛴다 limit - 가져오는 데이터의 갯수, offset - 건너뛸 데이터의 양 페이지 x번에 대하여 한 페이지에 y개를 보여주기 select * from book order by likes desc limit y offset(x - 1) * y; Offs.. 2023. 10. 29.
조인, 서브쿼리 조금 더 알아본 내용 조인을 위해서는 기본키(PRIMARY KEY, PK)와 외래키(FOREIGN KEY, FK) 관계로 맺어져야 하고, 이를 일대다 관계라고 한다 조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다. OUTER JOIN(외부 조인)은 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다. CROSS JOIN(상호 조인)은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다. SELF JOIN(자체 조인)은 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다. inner join - 교집합 outer join - 합집합 LEFT.. 2023. 10. 29.
9주차 조인, 서브쿼리 시험에 나오는 유형, 책 103p, 교집합 차집합 내용 다시 보자 -- 책을 한번도 안산 고객을 가져오기 select name from customer c where custid not in (select custid from orders) left outer join으로 customer의 데이터 전체와 orders에서 customer와 연관있는 데이터를 가져왔다 join은 on으로 조건을 표현한다 -- 책을 주문한 고객의 이름과 주문, 책을 출력 select c.name, o.saleprice from customer c left outer join orders o on c.custid = o.custid; 서브쿼리 - where절에 select문을 넣어서 조건을 만드는 것 -- 가격이 가장 비싼 책의.. 2023. 10. 27.
데베시험대비 데이터 -> 정보 -> 지식 -> 지혜 -- 도서테이블의 도서 중 가격이 가장 비싼 책과 가장 저렴한 가격을 검색하시오, 2중 셀렉트문 잘 외워두자 select bookname, price from book where price = (select max(price) from book) or price = (select min(price) from book); -- 고객의 주소가 서울이거나 대전에 사는 고객의 이름과 주소를 검색하시오 select name, address from customer where address like '%서울%' or address like '%대전%'; where in 에서는 와일드 카드를 사용할 수 없다 쿼리문 복습, 일단 조인없는 부분만 create table publis.. 2023. 10. 18.
6주차 - 조인 시험에 많이 나옴 select문 연습문제 in과 like는 같이 쓰면 인식이 안된다! show tables; select * from customer; select * from orders; select * from book; -- 고객 번호가 3번인 선수의 이름과 주소를 검색하시오 select name, address from customer where custid = 3; -- 2014년 7월 4일~7월 7일 사이에 주문받은 도서의 주문번호와 주문날짜를 검색하시오 select orderid, orderdate from orders where orderdate between 20140704 and 20140707; -- 이거 틀림 고객의 주소가 서울이거나 대전에 사는 고객의 이름과 주소를 검색하시오 select name.. 2023. 10. 13.
5주차 DB 임포트하기 워크벤치 좌측 권한 admin으로 하고 import 클릭 default target db에는 기존에 존재하는 스키마를 넣지 않고 새 db를 만들어서 임포트 show tables; 2023. 10. 6.
4 주차 select user from user; 2023. 9. 22.
3주차 데이터베이스 시스템 : 데이터를 저장, 관리하는 시스템 데이터베이스의 구조 스키마 : 데이터베이스에 저장 되는 데이터 구조와 제약조건을 정의(스키마 안의 속성 하나하나는 attribute) 인스턴스 : 스키마에 따라 데이터베이스에 실제로 저장된 값 3단계 데이터베이스 구조 외부 단계 : 사용자 관점, 여러개가 존재 개념 단계 : 논리적 구조를 저장 내부 단계 : 실제로 저장장치의 관점, 물리적 저장 구조 데이터 독립성 하위 스키마를 변경해도 상위 스키마가 영향을 받지 않는다! 논리적 데이터 독립성 : 개념 스키마가 변경 되어도 외부 스키마엔 영향 X 물리적 데이터 독립성 : 내부 스키마가 변경되어도 개념 스키마엔 영향 X 데이터베이스 사용자 데이터베이스 관리자(DBA) 응용 프로그래머 최종 사용자(= 일.. 2023. 9. 15.
1,2주차 데이터베이스 용어 데이터 - 값 데이터베이스 : 많은 정보를 저장, 정보 저장 공간 DBMS - 데이터베이스 관리 시스템, 메모리에 db를 적재, 권한, 실제 존재하는 운영 소프트웨어(학사시스템, 예약시스템) 데이터베이스 정의 조직 안에 저장,운영,공유,통합 4가지 데이터베이스 특징 실시간 접근 - 언제나 접근 가능 변화 - db내용을 삽입,삭제,수정을 하면서 정확한 데이터를 유지 동시 공유 - 동시에 접근 가능 내용 기반 참조 - db 내용, 값을 기반해서 참조 2023. 9. 8.