목록분류 전체보기 (175)
가자미의 개발이야기
1. 데이터베이스 모델링 과정 ㄱ. 요구사항 수집 및 분석 ㄴ. 개념적 모델링 ㄷ. 논리적 모델링 ㄹ. 물리적 모델링 ㅁ. 데이터베이스 구현 요구사항 수집 및 분석 - 현실 세계를 파악하고 수용자의 요구사항을 수집 및 분석. 개념적 모델링 - 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만듬 - 개체(엔티티)를 추출하고 각 개체들 간의 관계를 정의하는 과정. - ER 다이어그램을 활용. 논리적 모델링 - ER 다이어그램을 DBMS에 맞게 사상(매핑)하여 구현 가능한 모델을 만드는 과정. - 개념적 모델링과는 달리, 상세 속성들을 모두 추출 - 중복 저장을 막는 정규화와 표준화를 수행 물리적 모델링 - 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정.
인덱스는 클러스터 인덱스와 보조 인덱스로 나뉨. 모두 B-tree 인덱스를 기반으로 함. 1. 클러스터 인덱스 -연속된 키 값의 레코드를 묶어서 같은 블록에 저장. -테이블 당 하나만 생성. -리프 노드들이 정렬된 테이블 자체. -기본키 생성 시 자동 생성. 2. 보조 인덱스 -리프 노드에 실제 데이터값이 아닌 위치를 저장. -정렬되지 않은 무작위여도 찾을 수 있음(검색 속도가 느릴 수 있음) 3. 인덱스 생성 인덱스는 WHERE 절에 자주 사용되는 속성이어야 한다 조인에 자주 사용되는 속성이어야 한다. 단일 테이블에 인덱스가 많으면 속도가 느려진다.(테이블 당 4~5) 속성이 가공되는 경우 사용하지 않는다. 속성의 선택도가 낮을 때 유리하다. *선택도 = 1/서로 다른 값의 개수 CREATE [UNIQ..
-뷰 : 질의의 결과 만들어지는 가상의 테이블로 실제 테이블처럼 사용 *실제 데이터를 디스크에 저장되는게 아니라 DBMS가 SELECT문의 정의를 저장함 *INSERT, UPDATE, DELETE 같은 DML 작업은 뷰에서 수행하지 않는다. 1. 뷰 생성 CREATE VIEW 뷰이름 [(열이름....)] AS SELECT 문... ================================ 열이름은 뷰에서 사용할 열의 이름. 열이름과 SELECT에서 추출하는 속성은 일대일 대응 CREATE VIEW vw_Orders (orderid, custid, name, bookid, bookname, saleprice, orderdate) AS SELECT od.orderid, od.custid, cs.name, o..
부속질의 : 하나의 SQL 문 안에 다른 SQL 문이 중첩된 질의 1. 스칼라 부속질의 - SELECT 부속질의 -SELECT 절에서 이뤄지고, 단일 값을 반환 SELECT custid, (SELECT name FROM Customer cs WHERE cs.custid=od.custid) 'name', SUM(saleprice) 'total' FROM orders od GROUP BY custid; *name 속성은 부속질의로 구현 ALTER TABLE Orders ADD bname VARCHAR(40); UPDATE Orders SET bname=(SELECT bookname FROM Book where Book.bookid=Orders.bookid); SELECT * FROM Orders; *bnam..
이번엔 my.ini를 수정하고 저장하려 할 때 권한이 없다는 오류를 해결해보자. 1. 일단 mysql폴더에 있는 my.ini를 찾는다. (이때 ProgramData가 안보일 경우, 탐색기의 숨김폴더 표시를 체크해주면 나타난다.) 3. 오른쪽 클릭-속성-보안-편집 순으로 진행한다. 3.user(사용자 이름)을 클릭하고 모든 권한을 체크하고 적용한다. 이렇게 하고 다시 my.ini를 수정하면 오류 메시지가 발생하지 않는다!
숫자함수 함수 설명 ABS(숫자) 절대값을 반환 CEIL(숫자) 입력값보다 크거나 같은 정수 반환 FLOOR(숫자) 입력값보다 작거나 같은 정수 반환 ROUND(숫자, m) 입력값을 자릿수 m에서 반올림 LOG(n, 숫자) 입력값의 자연로그 값 반환 POWER(숫자 , n) n제곱 값을 계산 SQRT(숫자) 양수인 입력값의 제곱근을 반환 SIGN(숫자) 입력값이 음수면 -1, 0이면 0, 양수면 1 문자함수 CHAR, VARCHAR 데이터 타입을 대상 반환 구분 함수 설명 문자값 반환 함수 s : 문자열 c : 문자 n : 정수 k : 정수 CONCAT(s1, s2) 두 문자열 연결 LOWER(s) 모두 소문자로 바꿈 LPAD(s, n, c) s를 n까지 c로 바꿈 REPLACE(s1, s2, s3) s..
1. 날짜 시각 관련 클래스 -시각을 표현하는 Instant, 시간을 표현하는 Duration(시간의 차이) import java.time.Duration; import java.time.Instant; public class StreamPtc { public static void main(String[] args) { Instant start = Instant.now();//현재 시각 정보를 담음 System.out.println("시작 : "+ start.getEpochSecond()); Instant end = Instant.now(); System.out.println(" 끝 : "+end.getEpochSecond()); Duration between = Duration.between(start..
1. root 계정으로 데이터베이스 생성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 DROP DATABASE IF EXISTS madang; DROP USER IF EXISTS madang@localhost; create database madang; create user madang@localhost identified WITH mysql_native_password by 'madang'; grant all privi..
1. 스트림 생성과 연결 -스트림을 생성과 동시에 원소를 전달하는 of -static Stream of(T....values) --double, int, long 형 스트림에도 오버로딩 되어 있음. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.util.Arrays; import java.util.List; import java.util.stream.Stream; public class StreamPtc { public static void main(String[] args) { Stream.of(11,22,33,44)//4개의 값으로 스트림 생성(원소 4개) .forEach(n->System.out.print(n+"\t")); Syste..
1. 관계대수 #관계대수 - 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 잉요하여 질의하는 방법을 기술하는 언어. - 순수 관계 연산 : 셀렉션, 프로젝션, 조인, 디비전, 개명 - 일반 집합 연산 : 합집합, 차집합, 교집합, 카티전 프로덕트 - 단항 연산자 : 연산자 릴레이션 - 이항 연산자 : 릴레이션1 연산자 릴레이션2 2. 셀렉션과 프로젝션 #셀렉션 -σ(R) - 릴레이션의 투플을 추출하는 연산 - 만약 조건이 여러개면 ∧(and) ∨(or) ¬(not)를 사용 ex. σ