1. 개념1NF를 만족하며, 모든 비기본 키 속성이 전체 기본 키에 대해 완전 함수적 종속을 가져야 한다.즉, 기본 키의 일부에만 종속된 속성이 없어야 한다. 2NF를 만족하지 못하는 데이터 예제학생들이 수강하는 과목과 그 과목의 담당 교수에 대한 정보를 포함하는 테이블을 설계.여기서 pk는 {학생ID, 과목코드}의 복합 키입니다. 수강 정보 테이블 학생ID과목코드과목명담당 교수1MAT101수학김교수1SCI101과학이교수2MAT101수학김교수2ENG101영어박교수 위 테이블에서 '과목명'과 '담당 교수'는 과목코드에 부분적으로 종속되어 있다. 즉, 학생ID와는 직접 적인 관련이 없다.이는 2NF를 위반하는 데이터의 형태. 2NF 문제 해결 2NF를 만족시키기 위해 부분 종속성을 제거해야 한다.이를 위..
1. 개념테이블(Relation)이 제 1정규형을 만족했다는 것은 아래 세 가지 조건를 만족했다는 것을 의미한다. 어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다.모든 attribute에 반복되는 그룹(repeating group)이 나타나지 않는다.기본 키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다.1. 원자값이 아닌 데이터제 1정규형의 첫 번째 조건은 모든 도메인이 원자값으로 구성되어야 한다는 것원자값이 아닌 예 (수강 과목) 학생ID 이름 수강 과목 1홍길동수학, 과학2이순신역사, 미술, 음악 위 표에서 '수강 과목' 필드에 여러 과목이 쉼표로 구분되어 들어가 있어, 이 필드가 원자값이 아님.2. 반복 그룹이 있는 데이터..
1. 개념subquery란?서브쿼리(subquery)는 SQL 문장 내에서 다른 SQL 쿼리를 내포하는 구문. 서브쿼리의 개념서브쿼리는 보통 소괄호 () 안에 작성되며, 메인 쿼리(main query) 또는 외부 쿼리(outer query)라고 하는 더 큰 SQL 쿼리의 일부로 존재. 서브쿼리는 메인 쿼리에 의해 반환된 데이터를 기반으로 추가적인 조건을 적용하거나, 메인 쿼리의 조건을 정의하는 데 사용된다. 문법에 형태 살펴 보기select * from reservationwhere name in( select name from customer where address ='서울' ); 서브쿼리를 사용하는 이유복잡성 감소: 복잡한 쿼리를 더 작고 관리하기 쉬운 부분으로 나누어 처리할 수 있다.재사용성: ..
-- 1. 현재 근무 중인 직원들 중에 38년 이상 근무했으나 직급이 Staff이고 salary_standard가 Low인 직원만 출력해주세요.-- (salary가 70000 이상이면 'High', 50000 이상이면 'Medium', 50000 미만이면 'Low'라고 표시하되 표기명은 salary_standard입니다.)-- (단, 같은 직원일 경우 가장 높은 급여만 'max_salary'라는 표기로 출력해야 합니다.)SELECT e.emp_no,e.first_name,e.last_name,t.title, MAX(s.salary) AS max_salary, CASEWHEN MAX(s.salary) >= 70000THEN 'High'WHEN MAX(s.salary) >= 50000THEN 'Medium'..
1. 설계 tb_categories 테이블 Field Name Data Type Description Constraints Example Values category_idINT카테고리의 고유 IDPRIMARY KEY, AUTO_INCREMENT1, 2, 3parent_idINT상위 카테고리의 IDFOREIGN KEY, NULL 가능NULL, 1category_nameVARCHAR(100)카테고리 이름NOT NULL"남성복", "팬츠", "셔츠" category_idparent_idcategory_name1NULL남성복2NULL여성복31팬츠 (남성복)42셔츠 (남성복)51팬츠 (여성복)62셔츠 (여성복)73면바지 (남성복)85면바지 (여성복)93슬랙스 (남성복)105슬랙스 (여성복)CREATE D..
1. 설계tb_categoriesField NameData TypeDescripitionvaluecategory_idint카테고리 고유 ID1, 2, 3, 4category_namevarchar(100)카테고리 이름"상의", "하의", "외투" tb_productsField NameData TypeDescripitionvalueproduct_idint상품 고유 ID1, 2, 3, 4product_namevarchar(255)상품 이름"상의", "하의", "외투"category_idintfk pricedicimal(10, 2)상품 가격 sizeenum상품 사이즈"S", "M", "L", "XL"colorvarchar(50)상품 컬러"흰색", "검정색", "청색" ... 테이블 관계tb_categories ..