끄적끄적 코딩
article thumbnail
[데이터베이스] 데이터베이스 모델링
데이터베이스 2023. 4. 17. 00:02

데이터베이스 모델링 (Database Modelling) - 정보화 시스템을 구축하기 위해 어떤 데이터가 존재 하는지 또는 업무에 필요한 정보는 무엇인지 분석하는 방법 - 관계형 데이터베이스는 이 ‘표’의 개념을 사용해서 데이터를 구성하는 방법을 사용 데이터베이스 모델링 순서 개념적 데이터베이스 모델링 업무분석 단계에서 얻어진 내용을 토대로 우선 Entity를 추출하고 Entity내에 속성(Attribute)을 구성하며 Entity간의 관계를 정의해서 ER-Diagram을 정의하는 단계 1.사용자 부문의 처리현상을 분석한다. 2.중요 실체와 관계를 파악하여 ERD를 작성한다. 3.실체에 대한 상세 정의를 한다. 4.식별자를 정의하고, 식별자 업무규칙을 정한다. 5.실체별로 속성을 상세화 한다. 6.필요한..

article thumbnail
[데이터베이스] JOIN
데이터베이스 2023. 4. 16. 22:47

JOIN 이란 - 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 조인이 필요 - 일반적으로 조인 조건을 포함하는 WHERE 절을 작성해야 한다. - 조인 조건은 일반적으로 각 테이블의 PK 및 FK로 구성됩니다. JOIN 종류 - inner join - outer join - left outer join - right outer join JOIN 조건의 명시에 다른 구분 - natural join - cross join(full join, cartesian join) JOIN 시 주의 사항 - 조인의 처리는 어느 테이블을 먼저 읽을지를 결정하는 것이 중요 - INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 조인의 순서를 조절해서 다양한 방법으로 최적화를 ..

[데이터베이스] View
데이터베이스 2023. 4. 16. 22:36

View - 데이터베이스에 존재하는 ‘가상의 테이블’ - 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지는 않음 - 테이블처럼 물리적으로 저장되는 것은 아님 - join이나 subquery와 같이 여러 개의 테이블을 참조하여 데이터를 조회 할 때 번거로움을 줄일 수 있음 - 단 MySQL에서 View는 단지 다른 테이블이나 View에 있는 데이터를 보여주는 역할만 수행 - View와 Table의 차이점은, Table은 실질적인 데이터가 있지만 View는 데이터가 없고 SQL만 저장한다. View 장점 - 특정 사용자에게 테이블 전체가 아닌 필요한 필드만(보안성) 보여줄 수 있음 - 복잡한 쿼리를 단순화해서 사용할 수 있음 - 쿼리를 재사용할 수 있음 - 여러 방법의 데이터 조회에 알맞은 다양한 구조..

[데이터베이스] Index
데이터베이스 2023. 4. 16. 22:32

Index - 책의 찾아보기(index, 색인)와 같이 원하는 내용을 바로 찾을 수 있도록 지원 - 테이블의 데이터 조회 시 동작속도를 높여주는 자료구조 - 데이터의 위치를 빠르게 찾아주는 역할 - 컬럼의 값과 레코드가 저장된 주소를 키와 값의 쌍으로 인덱스를 만들어 둠 - MYI(MySQL Index) 파일에 인덱스 저장 Index의 문제점 - 책의 모든 페이지에 나오는 단어를 찾아보기에 표시하게 되면 찾아보기의 분량이 엄청나게 많아져 오히려 본문보다 두꺼워지는 상황이 발생 - 필요 없는 index를 만들면 데이터베이스가 차지하는 공간만 늘어나고, index를 이용하여 덷이터를 찾는 것이 전체 테이블을 찾는 것 보다 느려짐 - 데이터베이스의 공간을 차지하므로 추가적인 공간 필요(DB크기의 10% 정도의..

article thumbnail
[데이터베이스] DDL
데이터베이스 2023. 4. 16. 22:26

SQL (Structured Query Language) SQL 구문은 DCL, DDL, DML로 구분하며, 아래와 같은 종류가 있다. DDL (Data Definition Language) : 데이터 정의어 - 데이터베이스 객체(table, view, index, …)의 구조를 정의. - 테이블 생성, 컬럼 추가, 타입변경, 제약조건 지정, 수정 등 데이터베이스 생성 데이터베이스 변경 데이터베이스 삭제 Table 생성 Data Type - 문자형 데이터 타입 - 숫자형 데이터 타입 - 날짜형 데이터 타입 - 이진 데이터 타입 optional attributes - NOT NULL : 각 행은 해당 열의 값을 포함해야 하며 null값을 허용되지 않음 - DEFAULT value : 값이 전달되지 않을 때..

[데이터베이스] JDBC
데이터베이스 2023. 2. 7. 01:26

JDBC(Java DataBase Connectivity)란? 자바 프로그래밍 언어로 만들어진 클래스와 인터페이스로 이루어진 API로서 ANSI SQL(1999)를 지원 SQL문을 실행할 수 있는 함수 호출 인터페이스 JDBC 특징 DBMS 종류에 독립적인 자바 프로그래밍 가능 데이터베이스가 달라지더라도 동일한 API를 사용하게 해준다(드라이버 및 URL만 수정 하면 가능) 자바가 가지는 플랫폼에 독립적이라는 특성과 DBMS에 독립적인 특성을 가진다 JDBC 기능 데이터베이스에 연결 설정 한다 SQL문장을 DBMS에 전송한다 SQL문장 전송 후 결과를 처리할 수 있게 해준다 JDBC Interface Database를 만드는 업체에게 제공되는 인터페이스 - 업체에게 제공되는 인터페이스를 각각의 DBMS업..

[데이터베이스] group by, having, 트랜잭션
데이터베이스 2023. 2. 7. 01:16

SQL 쿼리문 실행 순서 SELECT columns (5) FROM tablename (1) WHERE conditions (2) GROUP BY grouping column (3) HAVING grouping conditions (4) ORDER BY col [ASC | DESC] (6) group by 절 SELECT 문에서 GROUP BY 절을 사용하는 경우 데이터베이스는 쿼리 된 테이블의 행을 그룹으로 묶음 데이터베이스는 선택 목록의 집계 함수를 각 행 그룹에 적용하고 각 그룹에 대해 단일 결과 행을 반환 GROUP BY 절을 생략하면 데이터베이스는 선택 목록의 집계 함수를 쿼리 된 테이블의 모든 행에 적용 SELECT절의 모든 요소는 GROUP BY 절의 표현식, 집계 함수를 포함하는 표현식 또..

article thumbnail
[데이터베이스] 내장 함수
데이터베이스 2023. 2. 7. 01:15

단일행 함수 - 숫자 관련 함수 - 문자 관련 함수 - 날짜 관련 함수 - 변환형 함수 - NULL 관련 함수 다중행 함수 - 집계 함수 - 윈도우 함수 숫자 관련 함수 ABS(숫자) : 절대값 CELING(숫자) : 값보다 큰 정수 중 가장 작은 수 (올림) FLOOR(숫자) : 값보다 작은 정수 중 가장 큰 수 (내림) ROUND(숫자, 자릿수) : 숫자를 자릿수까지 반올림 TRUNCATE(숫자, 자릿수) : 숫자를 자릿수까지 버림 POW(X, Y), POWER(X, Y) : X의 Y승 MOD(분자, 분모) : 분자를 분모로 나눈 나머지 GREATEST(숫자1, 숫자2, …) : 주어진 수에서 가장 큰 수를 반환 LEAST(숫자1, 숫자2, …) : 주어진 수에서 가장 작은 수를 반환 문자 관련 함수..

검색 태그