본문 바로가기

전체 글15

[DB] ER 모델과 ER표기법(IE 표기법) ER 모델 표기법이란? ER 모델 표기법을 이해하기 위해서는 먼저 'ER 모델'을 알아야 한다. Entity Relationship 모델은 1976년 피터 첸이 제안한 개념적 모델링을 위한 방법론이다. 세상의 사물을 개체entity와 개체 간의 관계relationship으로 표현한다. 개체는 개체의 특성을 나타내는 속성attribute를 가지며 이를 이용해 개체를 식별한다. ER 모델 표기법은 개체간의 관계를 표현하는 표기법이며, ER다이어그램 이라는 방법으로 표기할 수 있다. 하지만, 실무에서 관계도를 표현하는 대표적인 방법은 IE 표기법information Engineering Notation이다. IE표기법은 관계를 나타내는 선의 끝 모양이 새의 발 모양처럼 생겼다해서 새발 표기법crow-feet이.. 2021. 9. 11.
[SQL SERVER] WHERE와 HAVING 공통점 SQL에서 WHERE와 HAVING은 모두 "조건절"이다. 검색의 대상이 되는 테이블(FROM 테이블명)의 튜플(행) 중 설정한 조건에 맞는 값만 불러오도록 명령한다. 차이점 1) GROUP BY 필수 여부 - HAVING절은 GROUP BY 절의 결과로 나타나는 그룹을 제한하는 역할을 한다. 따라서, GROUP BY절이 없는 상태에서 HAVING을 사용할 수 없다. - 그에 반해, WHERE 절은 GROUP BY가 없이도 사용 가능하다. 2) 속성/집계값 - HAVING절은 GROUP BY로 그룹핑한 결과값을 제어하는 역할을 하기 때문에, 입력값도 마찬가지로 집계값을 입력하여야 한다. - WHERE절의 입력값은 단일 속성(컬럼명)만 가능하다. 3) 예시 -- 테스트 테이블 생성 CREATE TA.. 2021. 9. 5.
[SQL SERVER] GO GO? 책을 보다가 GO라는 명령어를 접했다. 사실 개발실무자가 된 뒤로 SSMS에서 기존 테이블 분석을 위해 소스 복사를 할때 많이 봤던 문법이다. 샘플로 돌릴때는 이걸 써도 안써도 딱히 문제가 없었기 때문에 알아보지 않았는데, 생각보다 너무 많이 나와서 알아봐야겠다. USE [MASTER] CREATE DATABASE Madang GO .... .... INSERT INTO Orders VALUES (10, 3, 8 ...); GO 책의 설명에는 이렇게 나와있다. -- GO 명령어는 T-SQL 문은 아니지만 현재까지 명령어를 SQL Server에 보내서 실행시키는 역할을 한다. -- 즉 GO 명령어는 명령어를 묶어서 배치로 서버에 보내는 역할을 한다. 뭔가 자바 SQLMAP의 TRANSACTION과 .. 2021. 9. 5.
[DB] SQL SERVER 도메인 무결성 제약조건 설정하기 지난 포스팅에서는 무결성 제약조건의 개념에 대해 알아보았습니다. 이번 포스팅에서는 제약조건마다 어떻게 설정하는지에 대해서 알아보겠습니다. NOT NULL NOT NULL 제약조건이 설정된 컬럼에는 빈 값을 넣을 수 없도록 제약하는 조건입니다. /* CREATE TABLE TABLE_NAME ( COLUMN_NAME DATATYPE CONSTRAINT CONSTRAINT_NAME NOT NULL, ); */ CREATE TABLE NOTNULL_CONSTRAINT ( IID INT NOT NULL, -- 단순하게 NOT NULL이라고 설정해도 된다. NAME NVARCHAR(50) CONSTRAINT CONS_NOTNULL NOT NULL, AGE INT NOT NULL, ) CHECK 제약조건을 설정한 .. 2021. 8. 29.
[DB] 무결성 제약조건 무결성은 무엇이고 왜 지켜야 할까? 데이터 무결성integrity이란 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말합니다. 여기서 키워드는 "일관성"과 "정확성"입니다. 이 두가지가 없는 데이터베이스는 신뢰할 수 없기 때문입니다. 무결성 제약조건이란 쉽게말해 이 "무결성"을 지키기 위해 DBMS가 사용자의 삽입, 삭제, 수정 행위에 제약을 거는 것입니다. 예를 들어, DB관리자가 졸업한 학생의 데이터를 삭제했다고 가정한다면, "설립일부터 졸업한 학생을 포함한 경영학과의 학생 수는 몇명인가?"라는 물음에 답할 수 없게 됩니다. 현재 DB에 있는 데이터를 뽑으면 재학중인 학생의 데이터만 나오게 될 것이기 때문입니다. 만약 DB관리자가 삭제 쿼리를 실행했을 때, 무결성 제약조건에 의해 삭제할.. 2021. 8. 29.
[DB] 릴레이션의 구성(스키마와 인스턴스) 릴레이션의 구성(스키마와 인스턴스) 릴레이션은 1) 스키마, 2) 인스턴스로 구성된다. 스키마(릴레이션 스키마) - 관계 데이터베이스의 릴레이션이 어떻게 구성되는지, 어떤 정보를 담는지 등 기본적인 구조를 정의한다. - 테이블의 헤더에 표시 - 속성attribute: 릴레이션 스키마의 열 - 차수degree: 속성의 개수(=열의 개수) - 도메인domain: 속성이 가질 수 있는 값의 집합 - 스키마 표시방법 릴레이션 이름(속성1, 속성2, 속성3) 또는 릴레이션 이름(속성1: 도메인1, 속성2:도메인2, ...) -> 신발(상품번호, 상품명, 제작사, 가격) -> 신발(상품번호: INTEGER, 상품명:VARCHAR(50), 제작사:VARCHAR(50), 가격:INTEGER) 인스턴스(릴레이션 인스턴스.. 2021. 8. 29.
[DB] 데이터베이스의 개념적 구조 3단계 데이터베이스 구조 데이터베이스를 3단계인 외부/개념/내부 단계로 나눈 것을 3단계 베이터베이스 구조라고 한다. 각 단계는 "스키마schema"라는 용어로 표현한다. 예) 외부 스키마, 내부 스키마, 개념 스키마 외부 스키마 - 일반 사용자나 개발자가 접근하는 스키마이다. 특정 데이터를 추출하거나 프로그래밍을 할때 필요한 데이터를 의미한다.(전체 데이터베이스 중 일부) - 여러개가 될 수 있다. - 서브 스키마subschema라고도 부르며 View의 개념 개념 스키마 - 전체 데이터베이스의 정의를 의미하며, DBA가 관리하는 영역이다. 데이터와 관계, 제약사항, 무결성에 대한 내용이 저장된다. - 1개 - 전체 데이터베이스라고 이해하면 쉽다 내부 스키마 - 물리적 저장 장치에 데이터베이스가 실제로 .. 2021. 8. 29.
Tomcat 8080 port 에러 해결방법 이클립스에서 Tomcat을 스타트하면 가끔 8080 port 에러가 발생합니다. 'Starting Tomcat v7.0 Server at localhost' has encountered a problem. 이라고 팝업창이 뜨죠. 자세한 에러 메세지를 보면 Port 8080 required by Tomcat v7.0 Server at localhost is already in use.라고 합니다. 톰캣 서버는 구동하는데 필요한 8080 포트가 이미 사용되고 있기 때문에 오류가 발생한다고 해석할 수 있겠네요. 톰캣 설정에 포트를 8080으로 해놨는데, 이미 다른 프로그램이 해당 포트를 사용하고 있기 때문입니다. 포트를 바꾼다면 사용 가능하겠지만, 여러 사정상 매번 WAS를 올릴때마다 포트를 바꾸긴 어렵습니다.. 2021. 8. 18.