본문 바로가기

MySQL

(29)
JDBC를 활용한 CRUD 와 SOLID 원칙 콘솔을 활용한 간단한 퀴즈 게임 만들어 보기DB, 테이블 설계기본 데이터 입력(정규화)자바측 라이브러리 설정자바측 기능 구현 및 테스트리팩토링 1. MySQL DB, 테이블 설계-- 테이블 생성create database quizdb;use quizdb;create table quiz( id int auto_increment primary key, question varchar(500) not null, answer varchar(500) not null);desc quiz;-- 기본 샘플 데이터 입력insert into quiz(question, answer) values('대한민국의 수도는?', '서울'),('한반도의 남쪽에 위치한 나라는?', '대한민국'),('세계에서 가장 높은 산은?..
제 2정규화(Second Normal Form, 2NF) 💡 제2정규형 (2NF): 1NF를 만족하며, 모든 비기본 키 속성이 전체 기본 키에 대해 완전 함수적 종속을 가져야 합니다. 즉, 기본 키의 일부에만 종속된 속성이 없어야 한다. 2NF를 만족하지 못하는 데이터 예제학생들이 수강하는 과목과 그 과목의 담당 교수에 대한 정보를 포함하는 테이블을 설계.여기서 pk는 {학생ID, 과목코드}의 복합 키이다. 수강 정보 테이블학생ID과목코드과목명담당 교수1MAT101수학김교수1SCI101과학이교수2MAT101수학김교수2ENG101영어박교수위 테이블에서 '과목명'과 '담당 교수'는 과목코드에 부분적으로 종속되어 있다. 즉, 학생ID와는 직접 적인 관련이 없다. 이는 2NF를 위반하는 데이터의 형태 이다.  2NF 문제 해결2NF를 만족시키기 위해 부분 종속성을 ..
제 1정규화(First Normal Form, 1NF) 테이블(Relation)이 제 1정규형을 만족했다는 것은 아래 세 가지 조건를 만족했다는 것을 의미한다.어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다.모든 attribute에 반복되는 그룹(repeating group)이 나타나지 않는다.기본 키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 한다. 1. 원자값이 아닌 데이터제 1정규형의 첫 번째 조건은 모든 도메인이 원자값으로 구성되어야 한다는 것원자값이 아닌 예 (수강 과목)학생ID이름수강 과목1홍길동수학, 과학2이순신역사, 미술, 음위 표에서 '수강 과목' 필드에 여러 과목이 쉼표로 구분되어 들어가 있어, 이 필드가 원자값이 아님.  2. 반복 그룹이 있는 데이터제 1정규형의 두 번째..
서브 쿼리 ( subquery ) 서브 쿼리 subquery란?서브쿼리(subquery)는 SQL 문장 내에서 다른 SQL 쿼리를 내포하는 구문이다. 보통 소괄호 안에 작성되며, 메인 쿼리(main query) 또는 외부 쿼리(outer query)라고 하는 더 큰 SQL 쿼리의 일부로 존재한다. 서브쿼리는 메인 쿼리에 의해 반환된 데이터를 기반으로 추가적인 조건을 적용하거나, 메인 쿼리의 조건을 정의하는 데 사용된다.  문법에 형태 살펴 보기select * from reservationwhere name in( select name from customer where address ='서울' );  서브쿼리를 사용하는 이유복잡성 감소: 복잡한 쿼리를 더 작고 관리하기 쉬운 부분으로 나누어 처리할 수 있다.재사용성: 같은 서브쿼리를 여러..
쇼핑몰과 카테고리 2단계 tb_categories 테이블Field NameData TypeDescriptionConstraintsExample Valuescategory_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면바지 (남성복 →팬츠 → 면바지)84면바지 (여성복 → 팬츠 → 면바지)93슬랙스 (남성복 →팬츠 → 슬랙스 )104슬랙스(여성복→팬츠 → 슬랙스 )create da..
쇼핑몰과 카테고리 1단계 tb_categoriesField NameData TypeDescriptionvaluecategory_idint카테고리 고유 ID1, 2, 3, 4,category_namevarchar(100)카테고리 이름"상의", "하의", "아우터"create table tb_categories( category_id int auto_increment primary key, category_name varchar(100) not null);insert into tb_categories(category_name) values('상의');insert into tb_categories(category_name) values('하의');insert into tb_categories(category_name) value..
쇼핑몰 서비스의 DB 구축 회원가입에 대한 테이블 설계가 필요하다.상품에 대한 정보를 저장하는 테이블이 필요하다.주문테이블, 주문 상세 테이블이 필요하다.  User Table 설계 도면FieldTypeConstraintsdesc idINTpk, auto_increment사용자 고유 IDusernameVARCHAR(50)not null사용자 이름emailVARCHAR(100)not null, Unique이메일 주소passwordVARCHAR(255)not null비밀번호addressVARCHAR(255)-주소created_atTIMESTAMPDefault CURRENT_TIMESTAMP계정 생성 시간  Product TableFieldTypeConstraintsdesc idintpk, auto_increment식별자namevarc..
블로그 서비스의 DB 구축 User 테이블 명세서Board 테이블 명세서 Reply 테이블 명세서 create database m_board;use m_board;create table user( id int primary key auto_increment, username varchar(100) not null unique, password varchar(255) not null, email varchar(100) not null, userRole varchar(20), createDate timestamp);-- board table, reply table create table board( id int primary key auto_increment, userId int, title varchar(100) ..

728x90