반응형

데이터베이스

    정규화를 고려한 모델링

    정규화정규화는 ERD 내에서 중복을 찾아 제거해 나가는 과정을 말한다. 관계형 데이터베이스 모델의 기본은 동일한 정보는 한곳에서만 관리하는 것이다. 제 1정규화엔티티에서 하나의 속성이 복수의 값을 갖도록 설계 되었을 때 이를 단일 값을 갖도록 하는 것이다. 정규화 전.사원번호 취미1001 등산, 낚시1002 테니스, 등산 정규화 후사원번호 취미1001 등산1001 낚시1002 테니스1002 등산 다음과 같은 사유도 동일하게 제 1정규화 대상이 된다.사원번호 취미1 취미2 취미31001 등산 낚시 1002 테니스 1003 테니스 운동 독서 해당 테이블 구조는 단일 값을 가지고 있기 때문에 아무 문제가 없어보이지만, 동일한 성격을 가지는 데이터를 다른 속성에 저장하는 것도 문제가 된다. 제 2정규화제 2정규..

    설계시 도메인 고려 방법 및 완성된 ERD 검토

    도메인도메인은 엔티티의 속성들이 가질 수 있는 값들의 집합.DBMS에서 도메인이란 엔티티와 속성에 대응하는 테이블의 컬럼에 대한 데이터 타입과 길이를 의미 도메인 추출 및 데이터 타입 추출방법1. 테이블에 구성될 컬럼들을 나열한 후 테이블의 도메인을 먼저 지정한다.대출일 - 날짜우수회원여부 - 예아니오회원이름 - 회원이름 2. 도메인에 맞는 데이터 타입을 지정한다.대출일 - date우수회원여부 - char(1)회원이름 - varchar(20) ERD 검토 1. 엔티티 검토 1) 엔티티가 적절히 구성되었는지의 여부 2) 엔티티의 주 식별자가 적절히 선정되었는지 여부 -> 주식별자에 불필요한 요소가 없는지 -> 인스턴스의 유일성을 보장해 주는지 3) 유사한 내용을 관리하는 엔티티가 없는지 -> 분리, 통합이..

    sqlite 날짜비교

    sqlite는 date type이 존재하지않아 날짜 비교를 할 때 다음과 같이 지정해야 한다. 테이블 생성 CREATE TABLE `test` ( `starttime` TEXT, `endtime` TEXT ) strftime() 함수는 날짜를 첫 번째 파라미터에 정의된 형식으로 변형하여 반환하여 준다. 해당 파라미터의 정의할 수 있는 format 리스트는 다음과 같다. 위의 파라미터를 사용해서 원하는 형식으로 변형을 하여 날짜비교에 사용한다. 위의 테이블에서 날짜비교하기위해서 다음과 같이 사용한다. select * from test where CAST(strftime('%s', starttime) AS integer ) > CAST(strftime('%s', '2017-05-27') AS integer);

    논리삭제와 물리삭제 소개

    논리삭제와 물리삭제 물리 삭제는 데이터를 실제로 delete문장을 사용해서 지우는 것을 말하고 논리삭제는 실제로 데이터를 제거하는 것이 아니라 또 다른 컬럼에 삭제여부를 다루는 플래그를 설정하여 그 값을 기준으로 select를 해서 제거된 것 처럼 보이게 하는 방식입니다. 기존의 데이터 논리삭제 쇼핑사이트에서 해당 사용자가 쇼핑을 주문 취소하였을 때 이력을 남기는 대신 안보이게 하려고 하는 경우에 논리 삭제를 많이 사용합니다.

    Mysql 집계함수

    집계함수 count Count는 집계함수로서 해당 테이블의 지정된 컬럼의 개수를 판단 집계함수에서 null 값은 제외하고 집계된다. 단! *로 조회하였을 때는 null값이 포함된다 적용 전 데이터 적용 후 데이터 집계함수에서 중복제거 방법 집계함수 인자로 컬럼명을 부여할 때 distinct값을 같이 부여한다. 다른 집계함수 sum, min, max 또한 동일하게 적용된다.

    Mysql Group by

    그룹화 Group By 그룹화를 통해 집계함수의 활용범위를 넓힐 수 있다. 1. Group By로 그룹화 적용 전 적용 후 Group By 구를 사용해서 지정된 열의 값이 같은 행이 하나의 그룹으로 묶인다. 같은 값들로 묶이기 때문에, DISTINCT의 효과도 볼 수 있다. GroupBy 절의 조건 부여 groupby절의 where절을 이용하여 조건을 부여 할 수 없습니다. 예를 들어 select value, count(id), count(value) from testmysql where count(id) = 1 group by value; 과 같이 쿼리문을 실행하면 에러가 발생합니다. 그 이유는 GroupBy 구문보다 where절의 실행 순서가 더 빠르기 때문입니다 내부 처리순서 Where-> grou..

    Mysql 문자열 연산

    1. 문자열 결합 concat 2. 문자열에서 특정부분 자르는 substring 3. 좌우 공백을 제거해주는 trim 4. 문자열 길이 반환 character_length 5. 바이트 반환하는 octet_length -> 바이트를 반환하는 octet_length는 현재 캐릭터 셋에 따라 반환되는 값이 다르다. -> EUC-KR은 한글이 2바이트 UTF-8은 3바이트

    mysql 날짜 데이터

    날짜 데이터 현재 날짜 기준으로 앞으로의 날짜를 계산하는 방법 날짜 데이터 간의 차이 구하기

반응형