프로젝트를 위해 준비해야할 사항
- UI(기획)
- 네비게이션 SPRING MVC
컨트롤러 메소드
기능 서술(빠짐없이 한글로)
- table구조 : 디비모델링
- 샘플데이터를 Import (파일명.sql을 만든다.)
- 조회하는 sql을 작성한다.(실행계획, sql튜닝)
DB
- DB와 DBMS 차이는?
- DBMS(엄마) : 종류(mysql)
- DB(책) : Mysql(관리를 위한 DB)
1. DB생성
2. DB사용자 생성
3. 사용자 권한 부여
4. DB접속
5. Table 생성 : DB모델링을 통해 정규화(중복 제거)
6. Table CRUD
- 데이터 모델링
- 논리적 데이터 모델링 : 실제 Table작업
- 모델링 : 다양한 관점(view)으로 설명하는것
- 보통 사용하는 DB는 RDB 형식이다.
- 모델링
- 프로세스 모델링 : data의 흐름을 고민
- 논리적 데이터 모델링 : 특정업무에 대한 내용을 알고 흐름을 고민(금융업무등)
- 3대요소 : 엔티티/ 관계 / 속성 (/ 식별자)
- 동사를 보고 관계 여부를 파악한다.
- 업무에 필요한 명사를 추출
- 엔티티
- 엔티티는 N : M 관계는 없다.
- 1: ? 관계만 존재한다.
- N : M 관계일때는 중간에 1 : N , N : 1 관계로 정리해야한다.
- 식별자
- 주식별자는 업무와 관련이 있어야 한다.(속성이 1개 or N개)
- 대리식별자는 임의의 기준으로 만들어서 사용하는 것
- 정규화
- 1차 정규화 : 반복적인 속성이나 그룹 속성을 제거한다.
- 2차 정규화 : 주식별자에 완전 기능 종속(Non Fully Dependency)되지 않는 속성을 제거한다.(다른 테이블로 구성해도 괜찮은 속성들) -> 속성이 주식별자에 종속적인것들 제거
- 3차 정규화 : 주식별자에 이행종속(Transitive Depency)되지 않는 속성을 제거한다. -> 속성이 속성에 종속적인것들을 제거
- ERD표기법
- 식별/비식별 관계
- 식별관계(실선) - 부모테이블의 PK가 자식테이블의 PK/FK인 경우
- 비식별관계(점선) - 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
- 도메인
- 물리적인 데이터베이스에 어떤 형태와 길이로 저장될것인지 지정 하는것
- 사전에 정의된 용어 사전을 활용하는 것이 바람직하다.
- DML(Data Manipulation Language) : 데이터를 조작하기 위해 사용한다. INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당한다.
- DDL(Data Definition Language) : 데이터베이스의 스키마를 정의 하거나 조작하기 위해 사용한다. CREATE, DROP, ALTER 등이 여기에 해당한다.
- DCL(Data Control Language)
cd /usr/local/mysql/bin
./mysql -uroot -p비밀번호
- DATABASE 생성 및 권한 부여하고 접속하기(비밀번호를 바로입력하지말자:보안)
# Database 생성
CREATE DATABASE helloboard;
# 원격으로도 접속가능
GRANT ALL PRIVILEGES ON helloboard.* TO fastcamp@'%' IDENTIFIED BY 'fastcamp';
# 로컬로만 접속가능
GRANT ALL PRIVILEGES ON helloboard.* TO fastcamp@'localhost' IDENTIFIED BY 'fastcamp';
# DB에 여태까지 실행한 명령어 적용
FLUSH PRIVILEGES ;
#helloboard 데이터베이스에 접속하기 -> 비번입력
./mysql -ufastcamp -p helloboard
- SELECT 문에 * 는 절대 쓰지말자 : 컬럼명을 꼭 적자
- 직관성이 떨어진다.
- 특정위치의 값을 화면에 보여주고 있을때 테이블의 중간에 컬럼을 삭제 했을때 이상한 데이터및 오류가 발생할 가능성이 있다.(제거되는 컬럼에 관한것을 소스에서 제거 후 배포 후 테이블에서 컬럼제거 해야한다.)
- 그룹함수
- 그룹함수와 컬럼이 같이 나오면 group by키워드와 함께 사용되어야 한다.
- 그룹핑 이후의 조건은 having 절에서 구한다.
- 조인(JOIN)을 할 때는 최소한 테이블 수 -1 만큼의 조인조건이 필요하다.
0 개의 댓글:
댓글 쓰기