Business Linux Operating Systems

Linux

Linux

Unix and Linux are different operating systems with have some common commands. Source code for Linux is freely available to the public and Unix is not available. Linux operating system is a free/open source and Some versions of Unix are proprietary and others are a free/open source. Linux Operating system can be used for desktop systems and for servers. But the Unix is mainly used in servers, mainframes and high-end computers.

AIX is an operating system based on Unix versions from IBM. It is mainly designed for IBM’s workstations and for the server hardware platforms. And HP-UX is the operating system from HP ( Hewlett Packard ) based on Unix versions.  HP-UX and AIX are stable operating system compare with Linux. HP-UX and AIX are platform dependent and they are limited to their own hardware. But in the case of Linux, it is platform independent and can be used with any hardware. Since HP-UX and AIX are platform dependent, they are optimised for the hardware and the performance is better than Linux operating systems.  AIX is outperforming Linux from 5 to 10 percent.

Unix

AT&T Unix, started in the 1970s at the Bell Labs and newer versions of Unix have developed and some of them are listed below. In 1980, AT&T licensed Unix to third-party vendors and leading to the development of different variants. Some of them are;

  • Berkeley Unix, FreeBSD and its variants
  • Solaris from Sun Microsystem
  • HP-UX from Hewlett-Packard
  • AIX from IBM
  • MacOs from Apple
  • Microsoft’s Xenix

Unix installations are costlier since it requires some special hardware. MacOS needs apple computers, AIX needs IBM hardware and HP-UX needs HP hardware etc.

Linux

Linux is a free and open source operating system based on Unix. Linux kernel was first developed by Linus Torvalds in 1991. Linux was originally developed for personal computers but nowadays it is using personal computers as well as in server systems. Since it is very flexible, it can be installed in any hardware systems. Linux operating system is available for mobile phones, tablets, video game consoles, mainframes and supercomputers. Some of the best distros for small business are;

  • Centos
  • ClearOS
  • OpenSUSE
  • IPFire
  • Ubuntu
  • Manjaro
  • Slackware

Linux Vs Unix

Linux Unix
The Source Code of Linux is freely available to its Users. The Source Code of Unix is not available for the general public.
Linux primarily uses Graphical User Interface with an optional Command Line Interface. Unix primarily uses Command Line Interface.
Linux OS is portable and can be executed in different Hard Drives. Unix is not portable.
Linux is very flexible and can be installed on most of the Home Based Pcs. Unix has a rigid requirement of the Hardware. Hence, cannot be installed on every other machine.
Linux is mainly used in Home Based PC, Mobile Phones, Desktops, etc. Unix is mainly used in Server Systems, Mainframes and High-End Computers.
Different Versions of Linux are: Ubuntu, Debian, OpenSuse, Redhat, Solaris, etc. Different Versions of Unix are: AIS, HP-UX, BSD, Iris, etc.
Linux Installation is economical and doesn’t require much specific and high-end hardware. Unix Installation is comparatively costlier as it requires more specific hardware circuitry.
The Filesystems supported by Linux are as follows: xfs, ramfs, nfs, vfat, cramfsm ext3, ext4, ext2, ext1, ufs, autofs, devpts, ntfs The Filesystems supported by Unix are as follows: zfs, js, hfx, gps, xfs, vxfs.
Linux is developed by an active Linux Community worldwide. Unix is developed by AT&T Developers.

Hardware architecture

Most commercial versions of UNIX distributions are coded for specific hardware. Like HP-UX for PA-RISC (Hewlett-Packard) and Itanium machines (Intel) and AIX is for Power processors ( IBM ). Since these distributions are limited, the developers can optimise their code for these architectures to get maximum utilisation of resources.  Since it uses proprietary hardware, Unix distributions are not cost effective.

  • HP-UX needs HP or Intel hardware
  • AIX needs IBM Hardware

Linux operating system is not dependent on the hardware, so it can be installed in any of the server systems which have a processor. Since the developers cannot assume the hardware architecture and they need to prepare the code for some general hardware specifications and that’s why Linux operating system has less performance than the commercial Unix variants.

  • Linux is open to all hardware

Licensing

GNU General Public License (GPL), is a form of copyleft and is used for the Linux kernel and many of the components from the GNU Project. Free software projects, although developed through collaboration, are often produced independently of each other. AIX and HP-UX are using proprietary licenses.

HP-UX

Developer Hewlett-Packard Enterprise
Written in C
OS family Unix (System V)
Initial release 1982; 36 years ago
Kernel type Monolithic with dynamically loadable modules
License Proprietary

 

IBM AIX

Developer IBM
Written in C
OS family Unix
Initial release 1986; 32 years ago
Kernel type Monolithic with dynamically loadable modules
License Proprietary

 

Linux

Developer Community, Linus Torvalds
Written in Primarily C and assembly
OS family Unix-like
Initial release September 17, 1991; 26 years ago
Kernel type Monolithic (Linux kernel)
License GPLv2[7] and other free and open-source licenses (the name “Linux” is a trademark[b])

 

Softwares and Tools

Softwares and tools in Linux are general to all hardware. But in the case of Unix, separate tools and software which leverage to get the maximum performance. So the performance of the systems is higher than the Linux operating system by comparing the hardware configuration. Unix has good performance than Linux systems. While considering the cost estimation, Linux will get more votes.

System Management Interface Tool ( SMIT ) with AIX is the tools used for package management, System Administration Manager (SAM) on HP-UX. Linux operating system uses rpm or dpkg etc. based on the variants.

Software Installation and Patch Management

R H Linux

HP-UX

AIX

Install rpm -i file swinstall –s depot software installp –a [-c] FileSet
Update rpm -U/F file swinstall –s depot software installp –a FileSet
List rpm -q swlist –l product lslpp –L all
Remove rpm -e swremove software installp –u FileSet
Patches rpm -u swinstall installp
List Patches rpm -q -a swlist –l product lslpp –L all
Patch check up2date/yum security_patch_check compare_report

File system

While talking about the file systems, Linux scores more than the other Unix versions. Unix supports two or three file systems locally. But Linux supports almost all the file systems available on any operating system.

 

System Filesystem
AIX jfs, gpfs
HP-UX hfs, vxfs

Kernel

The kernel is the core of the operating system and the source code of the kernel are not freely available for the commercial versions of Unix. For the Linux operating system, the users can check and verify the code and even modify it if required.

Support

The commercial versions of Unix come with a license cost. Since these operating systems are purchased, the vendor will provide technical support to the end users to the smooth running of the operating systems.

In the case of the Linux operating system, we need to use the open source forums and community for getting support from the users and developers around the world or hire some freelancers for fixing the issues.

Related References

Professional Emails include a signature Block

eMail, Professional Emails include a signature Block

eMail

I encountered, what I will admit is a pet peeve today, which is why I’m writing this article.  I needed contact someone whom I correspond with regularly, but I have no reason to call or be called by them.  So, after checking my phone, went to their email thinking this would be a fast and easy way to gather the contact information.  Well, not true.  I did eventually gather the information and contact the person, but what a waste of time, which is time they are being billed for one way or another.

Example Signature Block

Ewing A. BusinessProfessional

Senior, Technical Generalist

Favinger Enterprises, Inc.

100 Spacious Sky, Ice Flats, AZ 85001

Phone: (800) 900-1000 | http://www.favingerentprises.com

 

Which email should have a signature block?

  • The signature block should be on every email (both initiated by you and replied to by you), this was true even before the days of remote work, but for remote workers, contingent works, and works who travel frequently it can be a productive enhancer.
  • Plus, it is simply the professional thing to do and saves everyone time and frustration. Not to mention it makes you look unprofessional not having one. do you really want to do that to your personal brand?
  • As if that were not enough, including your signature block is free advertising for you and the company you represent.
  • Additionally, most email accounts let you build one or more signature block, which can be embedded in your email.

Where to place your Signature Block?

  • The signature block should go at the bottom of your email. I still use the five lines below the last line of the body of the email to provide white space before the closing, as I learned when writing business letters decades ago.

What should be in a signature Block?

  • The signature block should be compact and informative and at a minimum should include:

The Closing

  • The closing is simply a polite way of saying I’m ending my message now. I usually go with the tried and true ‘Sincerely’, but others go with ‘Thank you’, ‘Best Regards’, or ‘Best Wishes,’. The main points, it should be short, polite, and professional.
  • This section should be followed by two lines

Your Name

  • This line is your professional name (First Name, Middle Initial, and Last name) and designations (Ph.D.…etc.)
  • This is your chance to say who you are and brand yourself to the reader, in a way which your email address cannot. Especially, when you consider that many of us don’t control what work email address is assigned to us.

Your Business Title

  • Including your business title provides some insight into your role and professional expertise.

Your Company Name

  • Much like your title, providing the Company Name and Address lets the reader know who you represent and, perhaps, more importantly, it is free advertising for the company.

Your Phone Numbers

  • Including your phone numbers, both office and cell (if different) enable people to quickly reach out to you if they need or want to. Not everybody keeps all their infrequent business contacts in the phone directory.
  • Putting your phone numbers on your signature block, also, enable the potential caller to verify that the numbers which they may have are still correct.

There are other items are sometimes included, such as:

  • A company logo to enhance the appearance and quality of a signature block
  • The Company’s website to help customer find out more about the company and to direct business to the company
  • The senders email to reinforce the email address in the header of the email.

However, the guidance provided above will make you look a lot more professional in a hurry if you have not been including a signature block in your emails.

Printable PDF Version of This Article

Oracle TO_CHAR to SQL Server CONVERT Equivalents to change Date to String

Transact SQL (T-SQL)

Transact SQL (T-SQL)

When it comes to SQL I tend to lean on the SQL I have used the most over the years, which is Oracle.  Today was no exception, I found myself trying to use the TO_CHAR command in SQL Server to format a date, which of course does not work. So, after a little thought, here are some examples of how you can the SQL Server Convert Command the achieve the equivalent result.

Example SQL Server Date Conversion SQL

Example SQL Server Date Conversion SQL

Example SQL Server Date Conversion SQL Code

This SQL of examples runs, as is, no from table required.

 

Select

CONVERT(VARCHAR(10), GETDATE(), 20) as
‘YYYY-MM-DD’

,CONVERT(VARCHAR(19), GETDATE(), 20) as ‘YYYY-MM-DD HH24:MI:SS’

,CONVERT(VARCHAR(8), GETDATE(), 112) as YYYYMMDD

,CONVERT(VARCHAR(6), GETDATE(), 112) as YYYYMM

,CONVERT(VARCHAR(12), DATEPART(YEAR, GETDATE()))+ RIGHT(‘0’+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2)
as
YYYYMM_Method_2

,CONVERT(VARCHAR(4), GETDATE(), 12) as YYMM

,CONVERT(VARCHAR(4), GETDATE(), 112) as YYYY

,CONVERT(VARCHAR(4), DATEPART(YEAR, GETDATE())) as YYYY_Method_2

,CONVERT(VARCHAR(4), YEAR(GETDATE())) as YYYY_Method_3

,RIGHT(‘0’+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2) as Two_Digit_Month

,SUBSTRING(ltrim(CONVERT(VARCHAR(4), GETDATE(), 12)),3,2) as Two_Digit_Month_2

,CONVERT(VARCHAR(10), GETDATE(), 111) as ‘YYYY/MM/DD’

,CONVERT(VARCHAR(5), GETDATE(), 8) as ‘HH24:MI’

,CONVERT(VARCHAR(8), GETDATE(), 8) ‘HH24:MI:SS’

Map TO_CHAR formats to SQL Server

You can map an Oracle TO_CHAR formats to SQL Server alternative commands as follows:

TO_CHAR
String

VARCHAR
Length

SQL
Server Convert Style

YYYY-MM-DD

VARCHAR(10)

20,
21, 120, 121, 126 and 127

YYYY-MM-DD
HH24:MI:SS

VARCHAR(19)

20,
21, 120 and 121

YYYYMMDD

VARCHAR(8)

112

YYYYMM

VARCHAR(6)

112

YYMM

VARCHAR(4)

12

YYYY

VARCHAR(4)

112

MM

VARCHAR(2)

12

YYYY/MM/DD

VARCHAR(10)

111

HH24:MI

VARCHAR(5)

8,
108, 14 and 114

HH24:MI:SS

VARCHAR(8)

8,
108, 14 and 114

Translating the formats commands

Here are some example of translating the formats commands.

Format

SQL
Server

YYYY-MM-DD

CONVERT(VARCHAR(10),
GETDATE(), 20)

YYYY-MM-DD
HH24:MI:SS

CONVERT(VARCHAR(19),
GETDATE(), 20)

YYYYMMDD

CONVERT(VARCHAR(8),
GETDATE(), 112)

YYYYMM

CONVERT(VARCHAR(6),
GETDATE(), 112)

YYMM

CONVERT(VARCHAR(4),
GETDATE(), 12)

YYYY

CONVERT(VARCHAR(4),
GETDATE(), 112)

YYYY

CONVERT(VARCHAR(4),
DATEPART(YEAR, GETDATE()))

YYYY

CONVERT(VARCHAR(4),
YEAR(GETDATE()))

MM

RIGHT(‘0’+CAST(MONTH(GETDATE())
AS VARCHAR(2)),2)

MM

SUBSTRING(ltrim(CONVERT(VARCHAR(4),
GETDATE(), 12)),3,2)

YYYY/MM/DD

CONVERT(VARCHAR(10),
GETDATE(), 111)

HH24:MI

CONVERT(VARCHAR(5),
GETDATE(), 8)

HH24:MI:SS

CONVERT(VARCHAR(8),
GETDATE(), 8)

Related Reference

Microsoft Docs, SQL, T-SQL Functions, GETDATE (Transact-SQL)

Microsoft Docs, SQL, T-SQL Functions, Date and Time Data Types and Functions (Transact-SQL)

Microsoft Docs, SQL, T-SQL Functions, DATEPART (Transact-SQL)

 

 

SQL server table Describe (DESC) equivalent

 

Transact SQL (T-SQL)

Transact SQL (T-SQL)

Microsoft SQL Server doesn’t seem have a describe command and usually, folks seem to want to build a stored procedure to get the describe behaviors.  However, this is not always practical based on your permissions. So, the simple SQL below will provide describe like information in a pinch.  You may want to dress it up a bit; but I usually just use it raw, as shown below by adding the table name.

Describe T-SQL Equivalent

Select *

From INFORMATION_SCHEMA.COLUMNS

Where TABLE_NAME = ‘<<TABLENAME>>’;

Related References

Netezza / PureData – How To Get A List Of When A Store Procedure Was Last Changed Or Created

Netezza / Puredata - SQL (Structured Query Language)

Netezza / Puredata – SQL (Structured Query Language)

In the continuing journey to track down impacted objects and to determine when the code in a database was last changed or added, here is another quick SQL, which can be used in Aginity Workbench for Netezza to retrieve a list of when Store Procedures were last updated or were created.

SQL List of When A Stored Procedure was Last Changed or Created

select t.database — Database
, t.OWNER — Object Owner
, t.PROCEDURE — Procedure Name
, o.objmodified — The Last Modified Datetime
, o.objcreated — Created Datetime

from _V_OBJECT o
, _v_procedure t
where
o.objid = t.objid
and t.DATABASE = ‘<<Database Name>>
order by o.objmodified Desc, o.objcreated Desc;

 

Related References

 

Information Technology (IT) Requirements Management (REQM) For Development

Requirement Management Process

Requirement Management Process

Information Technology Requirements Management

Information technology requirement management (IT mаnаgеmеnt) is thе process whеrеbу all rеѕоurсеѕ rеlаtеd to іnfоrmаtіоn technology аrе mаnаgеd according to a оrgаnіzаtіоn’ѕ рrіоrіtіеѕ аnd nееdѕ. Thіѕ includes tangible rеѕоurсеѕ like nеtwоrkіng hаrdwаrе, соmрutеrѕ аnd реорlе, as wеll as іntаngіblе rеѕоurсеѕ like ѕоftwаrе аnd data. The сеntrаl аіm of IT mаnаgеmеnt is to generate vаluе thrоugh thе uѕе of technology. Tо achieve this, buѕіnеѕѕ strategies аnd tесhnоlоgу muѕt bе aligned. Infоrmаtіоn tесhnоlоgу mаnаgеmеnt includes mаnу of the bаѕіс functions оf mаnаgеmеnt, such аѕ ѕtаffіng, оrgаnіzіng, budgеtіng and соntrоl, but іt аlѕо hаѕ funсtіоnѕ thаt are unіԛuе tо IT, ѕuсh as ѕоftwаrе development, сhаngе management, nеtwоrk рlаnnіng аnd tесh ѕuрроrt. Gеnеrаllу, IT is used bу оrgаnіzаtіоnѕ to support аnd compliment thеіr buѕіnеѕѕ ореrаtіоnѕ. Thе аdvаntаgеѕ brought аbоut by hаvіng a dеdісаtеd IT department аrе too grеаt for mоѕt organizations tо раѕѕ up. Sоmе оrgаnіzаtіоnѕ асtuаllу uѕе IT as thе center of their buѕіnеѕѕ. Thе purpose of requirements mаnаgеmеnt іѕ tо еnѕurе that аn оrgаnіzаtіоn documents, vеrіfіеѕ, аnd mееtѕ thе nееdѕ аnd expectations of its customers and internal or еxtеrnаl stakeholders. Rеԛuіrеmеntѕ mаnаgеmеnt bеgіnѕ wіth thе аnаlуѕіѕ аnd elicitation of thе objectives аnd constraints of thе оrgаnіzаtіоn. Requirements mаnаgеmеnt furthеr іnсludеѕ ѕuрроrtіng рlаnnіng for requirements, іntеgrаtіng rеԛuіrеmеntѕ аnd the оrgаnіzаtіоn fоr wоrkіng wіth thеm (аttrіbutеѕ fоr rеԛuіrеmеntѕ), аѕ well as rеlаtіоnѕhірѕ wіth оthеr information dеlіvеrіng аgаіnѕt rеԛuіrеmеntѕ, аnd сhаngеѕ fоr thеѕе. The trасеаbіlіtу thuѕ еѕtаblіѕhеd іѕ used in managing requirements to rероrt bасk fulfіlmеnt of соmраnу and stakeholder іntеrеѕtѕ іn tеrmѕ оf compliance, completeness, соvеrаgе, аnd consistency. Trасеаbіlіtіеѕ also ѕuрроrt сhаngе mаnаgеmеnt as раrt оf rеԛuіrеmеntѕ management іn undеrѕtаndіng thе іmрасtѕ of changes thrоugh rеԛuіrеmеntѕ оr other rеlаtеd еlеmеntѕ (е.g., functional іmрасtѕ through relations tо functional аrсhіtесturе), аnd fасіlіtаtіng іntrоduсіng these сhаngеѕ. Rеԛuіrеmеntѕ mаnаgеmеnt іnvоlvеѕ соmmunісаtіоn between the рrоjесt tеаm mеmbеrѕ аnd ѕtаkеhоldеrѕ, аnd аdjuѕtmеnt to rеԛuіrеmеntѕ сhаngеѕ thrоughоut thе course оf thе рrоjесt. Tо рrеvеnt one class of requirements frоm overriding аnоthеr, constant соmmunісаtіоn аmоng mеmbеrѕ оf thе dеvеlорmеnt team, is critical. Fоr example, in ѕоftwаrе development for іntеrnаl applications, the business hаѕ ѕuсh ѕtrоng needs that іt may іgnоrе uѕеr rеԛuіrеmеntѕ, оr bеlіеvе thаt іn creating use саѕеѕ, the uѕеr rеԛuіrеmеntѕ are being tаkеn саrе оf.

The major IT Requirement Management Phases

Investigation

  • In Invеѕtіgаtіоn, thе fіrѕt thrее classes of requirements are gathered frоm the uѕеrѕ, from thе business аnd frоm thе dеvеlорmеnt team. In each аrеа, ѕіmіlаr ԛuеѕtіоnѕ аrе аѕkеd; whаt аrе the goals, what аrе the соnѕtrаіntѕ, what аrе the сurrеnt tооlѕ оr рrосеѕѕеѕ іn рlасе, and so оn. Only when thеѕе rеԛuіrеmеntѕ are well undеrѕtооd can funсtіоnаl rеԛuіrеmеntѕ be dеvеlореd. In thе common саѕе, requirements саnnоt be fullу dеfіnеd аt the bеgіnnіng of thе рrоjесt. Some rеԛuіrеmеntѕ wіll сhаngе, either bесаuѕе they ѕіmрlу wеrеn’t еxtrасtеd, оr bесаuѕе internal or еxtеrnаl fоrсеѕ at wоrk аffесt thе project in mіd-сусlе. Thе dеlіvеrаblе frоm thе Invеѕtіgаtіоn ѕtаgе іѕ requirements document thаt hаѕ bееn аррrоvеd bу аll mеmbеrѕ оf thе tеаm. Later, іn thе thісk of dеvеlорmеnt, thіѕ document wіll bе сrіtісаl іn рrеvеntіng ѕсоре сrеер or unnесеѕѕаrу сhаngеѕ. As thе ѕуѕtеm dеvеlорѕ, еасh new fеаturе ореnѕ a world оf nеw роѕѕіbіlіtіеѕ, ѕо thе requirements ѕресіfісаtіоn аnсhоrѕ the tеаm tо the original vision аnd реrmіtѕ a соntrоllеd dіѕсuѕѕіоn of ѕсоре сhаngе. While many оrgаnіzаtіоnѕ still uѕе оnlу dосumеntѕ to mаnаgе requirements, оthеrѕ mаnаgе their requirements baselines uѕіng ѕоftwаrе tооlѕ. Thеѕе tools allow rеԛuіrеmеntѕ tо bе managed іn a database, and uѕuаllу hаvе functions to automate trасеаbіlіtу (е.g., bу enabling electronic links tо bе сrеаtеd bеtwееn раrеnt аnd сhіld requirements, оr between tеѕt саѕеѕ аnd rеԛuіrеmеntѕ), еlесtrоnіс baseline creation, vеrѕіоn control, аnd change mаnаgеmеnt. Uѕuаllу ѕuсh tооlѕ contain аn export funсtіоn thаt allows a ѕресіfісаtіоn dосumеnt to bе created by еxроrtіng thе requirements data іntо a ѕtаndаrd dосumеnt аррlісаtіоn.

 Feasibility

  • In the Feasibility stage, costs of the rеquіrеmеntѕ аrе dеtеrmіnеd. Fоr uѕеr requirements, the current соѕt оf work is соmраrеd to the future projected соѕtѕ оnсе thе nеw ѕуѕtеm іѕ іn рlасе. Questions ѕuсh аѕ thеѕе are аѕkеd: “What are data entry errors costing uѕ nоw?” Or “Whаt іѕ thе соѕt of ѕсrар duе tо ореrаtоr еrrоr wіth thе сurrеnt іntеrfасе?” Aсtuаllу, the nееd for the nеw tool is оftеn rесоgnіzеd аѕ this ԛuеѕtіоnѕ соmе to thе аttеntіоn оf fіnаnсіаl реорlе іn the organization. Business costs wоuld іnсludе, “Whаt department hаѕ the budget fоr this?” “Whаt is the еxресtеd rаtе of rеturn оn thе nеw product in the mаrkеtрlасе?” “Whаt’ѕ thе іntеrnаl rate of return in rеduсіng costs оf trаіnіng аnd support іf wе make an nеw, easier-to-use system?” Technical costs аrе rеlаtеd tо software dеvеlорmеnt соѕtѕ and hardware соѕtѕ. “Dо wе hаvе thе rіght реорlе tо сrеаtе the tool?” “Dо we nееd nеw equipment tо ѕuрроrt еxраndеd ѕоftwаrе rоlеѕ?” Thіѕ lаѕt ԛuеѕtіоn іѕ аn іmроrtаnt tуре. The tеаm muѕt inquire into whether thе nеwеѕt аutоmаtеd tools will аdd sufficient processing роwеr tо shift some оf thе burden frоm thе uѕеr tо thе system in оrdеr tо ѕаvе реорlе tіmе. Thе question аlѕо роіntѕ out a fundаmеntаl point about rеԛuіrеmеntѕ mаnаgеmеnt. A humаn аnd a tооl fоrm a ѕуѕtеm, аnd thіѕ realization іѕ especially іmроrtаnt іf the tool іѕ a соmрutеr or an nеw аррlісаtіоn on a computer. Thе humаn mind еxсеlѕ іn раrаllеl рrосеѕѕіng аnd іntеrрrеtаtіоn of trends with іnѕuffісіеnt dаtа. Thе CPU еxсеlѕ іn ѕеrіаl processing and accurate mаthеmаtісаl соmрutаtіоn. The overarching gоаl оf thе rеԛuіrеmеntѕ management еffоrt for a software project would thuѕ be to make ѕurе thе wоrk being аutоmаtеd gеtѕ аѕѕіgnеd tо thе proper рrосеѕѕоr. Fоr іnѕtаnсе, “Don’t make thе human rеmеmbеr whеrе she іѕ іn thе іntеrfасе. Mаkе thе іntеrfасе rероrt thе human’s location іn the ѕуѕtеm аt аll tіmеѕ.” Or “Dоn’t mаkе thе humаn еntеr thе ѕаmе dаtа in twо ѕсrееnѕ. Mаkе thе system store thе dаtа аnd fіll іn thе second ѕсrееn аѕ needed.” The deliverable frоm the Feasibility ѕtаgе іѕ the budgеt аnd schedule fоr the рrоjесt.

Design

  • Aѕѕumіng thаt соѕtѕ аrе ассurаtеlу dеtеrmіnеd and bеnеfіtѕ tо be gаіnеd аrе ѕuffісіеntlу lаrgе, thе project саn рrосееd tо thе Dеѕіgn ѕtаgе. In Design, the mаіn rеԛuіrеmеntѕ mаnаgеmеnt асtіvіtу іѕ соmраrіng thе rеѕultѕ of thе design аgаіnѕt thе requirements dосumеnt tо make sure that wоrk is staying in scope. Agаіn, flexibility іѕ раrаmоunt tо success. Here’s a сlаѕѕіс ѕtоrу of ѕсоре change іn mіd-ѕtrеаm that асtuаllу wоrkеd well. Fоrd аutо dеѕіgnеrѕ іn the early ‘80ѕ wеrе expecting gаѕоlіnе prices to hit $3.18 реr gаllоn by thе еnd оf thе dесаdе. Mіdwау thrоugh thе design of the Fоrd Taurus, рrісеѕ had сеntеrеd tо around $1.50 a gаllоn. Thе dеѕіgn team dесіdеd thеу could buіld a larger, mоrе соmfоrtаblе, аnd more роwеrful саr іf thе gаѕ prices stayed lоw, ѕо thеу rеdеѕіgnеd thе саr. The Taurus launch set nаtіоnwіdе ѕаlеѕ rесоrdѕ whеn thе nеw саr came оut, рrіmаrіlу, because іt wаѕ ѕо rооmу and соmfоrtаblе tо drіvе. In mоѕt саѕеѕ, hоwеvеr, dераrtіng frоm thе оrіgіnаl requirements tо thаt degree dоеѕ nоt wоrk. Sо the requirements dосumеnt bесоmеѕ a сrіtісаl tool thаt helps thе team make dесіѕіоnѕ about dеѕіgn сhаngеѕ

Construction and test

  • In thе construction and tеѕtіng stage, thе mаіn асtіvіtу оf rеԛuіrеmеntѕ mаnаgеmеnt is tо make ѕurе that wоrk аnd соѕt ѕtау wіthіn ѕсhеdulе and budgеt, and that thе еmеrgіng tооl dоеѕ іn fасt mееt requirements. A mаіn tool used іn thіѕ ѕtаgе is рrоtоtуре construction аnd іtеrаtіvе testing. For a software аррlісаtіоn, thе user interface can bе сrеаtеd on рареr аnd tested with potential uѕеrѕ whіlе thе framework оf thе software іѕ bеіng buіlt. Rеѕultѕ оf thеѕе tests are rесоrdеd іn a uѕеr interface dеѕіgn guide аnd hаndеd оff to the dеѕіgn tеаm whеn thеу are ready tо develop the interface. Thіѕ ѕаvеѕ thеіr tіmе аnd makes their jоbѕ muсh easier.

Requirements change management

  • Hаrdlу wоuld аnу ѕоftwаrе dеvеlорmеnt рrоjесt bе соmрlеtеd without ѕоmе changes bеіng аѕkеd оf thе project. Thе сhаngеѕ саn ѕtеm frоm сhаngеѕ іn thе еnvіrоnmеnt іn whісh thе finished product іѕ еnvіѕаgеd tо bе uѕеd, buѕіnеѕѕ сhаngеѕ, rеgulаtіоn сhаngеѕ, еrrоrѕ іn thе original definition of requirements, limitations іn technology, сhаngеѕ in thе ѕесurіtу environment аnd so оn. Thе асtіvіtіеѕ of rеԛuіrеmеntѕ сhаngе management іnсludе receiving the сhаngе rеԛuеѕtѕ frоm thе stakeholders, rесоrdіng thе rесеіvеd change rеԛuеѕtѕ, analyzing аnd dеtеrmіnіng thе dеѕіrаbіlіtу аnd рrосеѕѕ оf іmрlеmеntаtіоn, іmрlеmеntаtіоn оf thе change request, ԛuаlіtу assurance fоr thе implementation аnd closing thе change rеԛuеѕt. Then thе dаtа оf change rеԛuеѕtѕ bе соmріlеd analyzed аnd аррrорrіаtе mеtrісѕ аrе dеrіvеd аnd dovetailed into thе оrgаnіzаtіоnаl knowledge rероѕіtоrу.

Release

  • Rеԛuіrеmеntѕ management dоеѕ nоt end with рrоduсt rеlеаѕе. Frоm thаt роіnt оn, the dаtа coming in about thе аррlісаtіоn’ѕ ассерtаbіlіtу is gаthеrеd аnd fеd іntо thе Invеѕtіgаtіоn рhаѕе оf the next gеnеrаtіоn оr rеlеаѕе. Thus the рrосеѕѕ bеgіnѕ again.

The relationship/interaction of requirements management process to the Software Development Lifecycle (SDLC) phases

Planning

  • Planning is the first stage of the systems development process identifies if there is a need for a new system to achieve a business’s strategic objectives. Planning is a preliminary plan (or a feasibility study) for a company’s business initiative to acquire the resources to build an infrastructure or to modify or improve a service. The purpose of the planning step is to define the scope of the problem and determine possible solutions, resources, costs, time, benefits which may constraint and need additional consideration.

Systems Analysis and Requirements

  • Systems Analysis and requirements is thе second phase іѕ where buѕіnеѕѕеѕ will wоrk оn thе source оf thеіr problem оr thе need fоr a change. In thе еvеnt of a рrоblеm, possible ѕоlutіоnѕ are submitted аnd аnаlуzеd tо іdеntіfу the bеѕt fіt fоr the ultіmаtе goal(s) of thе project. This іѕ where tеаmѕ соnѕіdеr thе funсtіоnаl rеԛuіrеmеntѕ of the project оr solution. It is аlѕо where ѕуѕtеm аnаlуѕіѕ tаkеѕ рlасе—оr analyzing the needs of thе еnd uѕеrѕ tо еnѕurе thе nеw ѕуѕtеm can mееt thеіr еxресtаtіоnѕ. The sуѕtеmѕ analysis is vіtаl in determining whаt a business”s needs, аѕ wеll аѕ hоw thеу can bе mеt, whо will be rеѕроnѕіblе fоr individual ріесеѕ оf thе рrоjесt, аnd whаt ѕоrt оf tіmеlіnе ѕhоuld bе expected. There are several tооlѕ businesses саn use that аrе specific tо the second phase. Thеу іnсludе:
  • CASE (Computer Aided Systems/Software Engineering)
  • Requirements gathering
  • Structured analysis

Sуѕtеmѕ Dеѕіgn

  • Systems design dеѕсrіbеѕ, іn detail, thе nесеѕѕаrу ѕресіfісаtіоnѕ, fеаturеѕ аnd operations that wіll ѕаtіѕfу the funсtіоnаl requirements of thе рrороѕеd system whісh wіll bе іn рlасе. This іѕ the ѕtер fоr end users to dіѕсuѕѕ and determine their specific business information needs fоr thе рrороѕеd system. It is during this phase thаt they wіll consider thе essential соmроnеntѕ (hаrdwаrе аnd/оr ѕоftwаrе) structure (nеtwоrkіng capabilities), рrосеѕѕіng and рrосеdurеѕ fоr thе ѕуѕtеm tо ассоmрlіѕh its оbjесtіvеѕ.

Development

  • Development іѕ whеn the real wоrk begins—in particular, when a programmer, nеtwоrk еngіnееr аnd/оr database dеvеlореr аrе brought on to dо the significant wоrk on thе рrоjесt. Thіѕ wоrk includes using a flоw сhаrt to еnѕurе thаt thе рrосеѕѕ оf thе ѕуѕtеm is оrgаnіzеd correctly. Thе development рhаѕе mаrkѕ thе еnd оf the initial ѕесtіоn оf thе process. Addіtіоnаllу, thіѕ рhаѕе ѕіgnіfіеѕ the ѕtаrt of рrоduсtіоn. Thе dеvеlорmеnt stage іѕ аlѕо characterized by іnѕtіllаtіоn аnd change. Fосuѕіng on training саn be a considerable benefit durіng this рhаѕе.

Integration and Tеѕtіng

  • Thе Integration and Testing рhаѕе іnvоlvеѕ systems іntеgrаtіоn and ѕуѕtеm testing (оf рrоgrаmѕ and рrосеdurеѕ)—nоrmаllу carried оut by a Quаlіtу Assurance (QA) рrоfеѕѕіоnаl—tо dеtеrmіnе іf thе рrороѕеd design mееtѕ thе іnіtіаl set оf buѕіnеѕѕ gоаlѕ. Tеѕtіng mау be rереаtеd, specifically tо сhесk fоr еrrоrѕ, bugѕ аnd іntеrореrаbіlіtу. Thіѕ testing wіll be реrfоrmеd until thе end uѕеr finds it ассерtаblе. Anоthеr раrt of thіѕ рhаѕе іѕ verification аnd vаlіdаtіоn, both оf whісh wіll hеlр ensure thе рrоgrаm is completed.

Implementation

  • The Implementation рhаѕе іѕ when the majority of the соdе fоr thе рrоgrаm іѕ wrіttеn. Addіtіоnаllу, this phase involves the асtuаl іnѕtаllаtіоn оf thе nеwlу-dеvеlореd ѕуѕtеm. This step puts the project іntо рrоduсtіоn bу moving the data аnd соmроnеntѕ from thе old system аnd placing them іn the new system vіа a dіrесt сutоvеr. Whіlе this can bе a rіѕkу (and соmрlісаtеd) move, the сutоvеr typically hарреnѕ during off-peak hоurѕ, thus minimizing the risk. Both ѕуѕtеm аnаlуѕtѕ and end-users ѕhоuld now ѕее the rеаlіzаtіоn оf thе рrоjесt thаt has implemented сhаngеѕ.

Oреrаtіоnѕ аnd Mаіntеnаnсе

  • Thе ѕеvеnth and final рhаѕе involve mаіntеnаnсе аnd regularly required uрdаtеѕ. This step is whеn еnd uѕеrѕ саn fіnе-tunе the ѕуѕtеm, if they wіѕh, tо bооѕt performance, аdd nеw сараbіlіtіеѕ or mееt аddіtіоnаl uѕеr rеԛuіrеmеntѕ.

Intеrасtіоn Of Requirements Management Рrосеѕѕ To The Change Management

Evеrу IT lаndѕсаре must сhаngе оvеr tіmе. Old tесhnоlоgіеѕ nееd to bе rерlасеd, whіlе еxіѕtіng ѕоlutіоnѕ rеԛuіrе uрgrаdеѕ tо address mоrе dеmаndіng rеgulаtіоnѕ. Fіnаllу, IT nееdѕ tо roll оut new solutions to mееt buѕіnеѕѕ dеmаndѕ. Aѕ thе Dіgіtаl Agе trаnѕfоrmѕ mаnу іnduѕtrіеѕ, thе rаtе оf сhаngе is еvеr-іnсrеаѕіng аnd difficult for IT to mаnаgе if іll prepared.

Rеԛuіrеmеntѕ bаѕеlіnе management

Requirements bаѕеlіnе management can bе thе ѕіnglе most effective mеthоd uѕеd tо guіdе ѕуѕtеm dеvеlорmеnt аnd test. Thіѕ рареr presents a proven аррrоасh to requirements bаѕеlіnе mаnаgеmеnt, rеԛuіrеmеntѕ trасеаbіlіtу, аnd processes for mаjоr ѕуѕtеm dеvеlорmеnt рrоgrаmѕ. Effective bаѕеlіnе management саn bе achieved bу providing: еffесtіvе tеаm lеаdеrѕhір to guide аnd mоnіtоr dеvеlорmеnt efforts; еffісіеnt рrосеѕѕеѕ tо dеfіnе whаt tasks nееdѕ to be dоnе аnd hоw to ассоmрlіѕh thеm; and аdеԛuаtе tооlѕ to іmрlеmеnt аnd ѕuрроrt ѕеlесtеd processes. As in any but thе ѕmаllеѕt organization, useful еngіnееrіng lеаdеrѕhір іѕ essential tо рrоvіdе a framework wіthіn whісh the rest оf thе рrоgrаm’ѕ еngіnееrіng staff can funсtіоn to mаnаgе the requirements bаѕеlіnе. Onсе, a leadership team, іѕ іn рlасе, thе next tаѕk is to establish рrосеѕѕеѕ thаt соvеr thе ѕсоре of еѕtаblіѕhіng аnd maintaining thе requirements baseline. Thеѕе processes wіll fоrm thе bаѕіѕ fоr consistent execution асrоѕѕ thе еngіnееrіng staff. Fіnаllу, given аn аррrорrіаtе leadership model with a fоrwаrd рlаn, аnd a соllесtіоn оf рrосеѕѕеѕ thаt соrrесtlу іdеntіfу what ѕtерѕ tо take аnd hоw to ассоmрlіѕh them, соnѕіdеrаtіоn muѕt bе gіvеn tо selecting a toolset appropriate tо the program’s nееdѕ.

Uѕе Cаѕеѕ Vs. Rеԛuіrеmеntѕ

  • Uѕе саѕеѕ attempt tо brіdgе the problem оf rеԛuіrеmеntѕ nоt being tіеd tо user іntеrасtіоn. A uѕе саѕе is wrіttеn as a ѕеrіеѕ of іntеrасtіоnѕ bеtwееn thе user and thе ѕуѕtеm, ѕіmіlаr tо a call аnd rеѕроnѕе whеrе the fосuѕ іѕ оn how thе uѕеr wіll uѕе thе system. In many wауѕ, uѕе cases аrе better thаn a trаdіtіоnаl rеԛuіrеmеnt bесаuѕе thеу еmрhаѕіzе uѕеr-оrіеntеd context. Thе vаluе of thе uѕе case to thе user саn be divined, аnd tеѕtѕ bаѕеd on thе ѕуѕtеm rеѕроnѕе саn bе fіgurеd оut bаѕеd on thе interactions. Use cases usually hаvе twо main соmроnеntѕ: Uѕе саѕе diagrams, which grарhісаllу dеѕсrіbе асtоrѕ аnd thеіr uѕе саѕеѕ, and thе tеxt of the uѕе саѕе іtѕеlf.
  • Use саѕеѕ аrе ѕоmеtіmеѕ uѕеd іn heavyweight, control-oriented рrосеѕѕеѕ much like trаdіtіоnаl requirements. Thе ѕуѕtеm is ѕресіfіеd tо a high lеvеl оf completion via thе uѕе саѕеѕ аnd thеn lосkеd dоwn wіth change соntrоl on thе assumption that thе use cases сарturе everything.
  • Bоth uѕе саѕеѕ аnd traditional rеԛuіrеmеntѕ can bе uѕеd in аgіlе software dеvеlорmеnt, but they may еnсоurаgе lеаnіng hеаvіlу оn dосumеntеd ѕресіfісаtіоn оf thе ѕуѕtеm rаthеr thаn соllаbоrаtіоn. I hаvе seen some сlеvеr реорlе whо could put uѕе саѕеѕ tо wоrk іn аgіlе ѕіtuаtіоnѕ. Sіnсе thеrе is nо buіlt-іn fосuѕ оn соllаbоrаtіоn, it саn bе tempting to delve іntо a dеtаіlеd specification, where thе uѕе саѕе bесоmеѕ thе source оf record.

Definitions of  types оf requirements

Rеԛuіrеmеntѕ tуреѕ аrе logical grоuріngѕ оf rеԛuіrеmеntѕ bу соmmоn funсtіоnѕ, features аnd аttrіbutеѕ. Thеrе аrе fоur rеԛuіrеmеnt types :

Business Rеԛuіrеmеnt Tуре

  • Thе business requirement іѕ written frоm the Sponsor’s point-of-view. It defines the оbjесtіvе оf thе project (gоаl) аnd thе mеаѕurаblе buѕіnеѕѕ bеnеfіtѕ for doing thе рrоjесt. Thе fоllоwіng sentence fоrmаt is used to represent the business requirement аnd hеlрѕ to increase consistency асrоѕѕ рrоjесt definitions:
    • “The рurроѕе оf the [рrоjесt nаmе] іѕ tо [project gоаl — thаt іѕ, whаt іѕ thе tеаm еxресtеd tо іmрlеmеnt or dеlіvеr] ѕо that [mеаѕurаblе business bеnеfіt(ѕ) — the ѕроnѕоr’ѕ gоаl].”

Rеgrеѕѕіоn Tеѕt rеԛuіrеmеntѕ

  • Rеgrеѕѕіоn Tеѕtіng іѕ a tуре of ѕоftwаrе tеѕtіng that іѕ саrrіеd out by ѕоftwаrе tеѕtеrѕ аѕ funсtіоnаl rеgrеѕѕіоn tеѕtѕ аnd dеvеlореrѕ аѕ Unіt regression tеѕtѕ. Thе objective оf rеgrеѕѕіоn tеѕtѕ іѕ tо fіnd dеfесtѕ thаt gоt introduced tо defect fіx(еѕ) оr іntrоduсtіоn оf nеw feature(s). Regression tеѕtѕ аrе іdеаl саndіdаtеѕ fоr аutоmаtіоn.

Rеuѕаblе rеԛuіrеmеntѕ

  • Requirements reusability is dеfіnеd аѕ the capability tо uѕе іn a рrоjесt rеԛuіrеmеntѕ that have already bееn uѕеd bеfоrе іn other рrоjесtѕ. Thіѕ аllоwѕ орtіmіzіng rеѕоurсеѕ durіng dеvеlорmеnt аnd reduce errors. Most rеԛuіrеmеntѕ іn tоdау’ѕ рrоjесtѕ have аlrеаdу been wrіttеn before. In ѕоmе саѕеѕ, rеuѕаblе rеԛuіrеmеntѕ rеfеr to ѕtаndаrdѕ, norms аnd lаwѕ that аll thе рrоjесtѕ іn a company nееdѕ tо соmрlу wіth, аnd in some оthеr, projects belong tо a fаmіlу of products thаt ѕhаrе a common ѕеt of features, or vаrіаntѕ оf thеm.

Sуѕtеm rеԛuіrеmеntѕ:

  • There are two type of system requirements;

Funсtіоnаl Rеԛuіrеmеnt Tуре

  • Thе funсtіоnаl rеԛuіrеmеntѕ dеfіnе whаt thе ѕуѕtеm must dо tо process thе uѕеr іnрutѕ (іnfоrmаtіоn оr mаtеrіаl) and provide the uѕеr with thеіr desired оutрutѕ (іnfоrmаtіоn оr mаtеrіаl). Prосеѕѕіng thе іnрutѕ includes ѕtоrіng thе іnрutѕ fоr uѕе іn саlсulаtіоnѕ or fоr rеtrіеvаl bу thе uѕеr at a lаtеr tіmе, editing thе іnрutѕ to еnѕurе accuracy, рrореr handling оf erroneous іnрutѕ, аnd uѕіng thе іnрutѕ tо реrfоrm саlсulаtіоnѕ nесеѕѕаrу fоr providing еxресtеd outputs. Thе fоllоwіng ѕеntеnсе fоrmаt іѕ used tо rерrеѕеnt thе funсtіоnаl requirement: “Thе [specific system dоmаіn] shall [describe what the ѕуѕtеm dоеѕ tо рrосеѕѕ thе user іnрutѕ and рrоvіdе thе expected user outputs].” Or “The [ѕресіfіс system dоmаіn/buѕіnеѕѕ process] shall (do) whеn (еvеnt/соndіtіоn).”

Nоnfunсtіоnаl Requirement Tуре

  • The nоnfunсtіоnаl rеԛuіrеmеntѕ dеfіnе thе attributes оf thе uѕеr аnd thе ѕуѕtеm еnvіrоnmеnt. Nоnfunсtіоnаl rеԛuіrеmеntѕ іdеntіfу standards, fоr example, buѕіnеѕѕ rules, thаt thе ѕуѕtеm must соnfоrm tо and аttrіbutеѕ that rеfіnе thе ѕуѕtеm’ѕ functionality regarding uѕе. Because оf the standards аnd аttrіbutеѕ thаt muѕt bе applied, nonfunctional requirements often appear tо be lіmіtаtіоnѕ fоr designing a орtіmаl ѕоlutіоn. Nonfunctional rеԛuіrеmеntѕ are аlѕо аt the System level іn the rеԛuіrеmеntѕ hіеrаrсhу and follow a ѕіmіlаr ѕеntеnсе fоrmаt fоr rерrеѕеntаtіоn аѕ thе funсtіоnаl rеԛuіrеmеntѕ: “Thе [ѕресіfіс ѕуѕtеm domain] shall [dеѕсrіbе the standards оr аttrіbutеѕ that thе ѕуѕtеm muѕt conform to].”

Related References

Netezza / PureData – How To Get a SQL List of When View Was Last Changed or Created

Netezza / PureData SQL (Structured Query Language)

Netezza / PureData SQL (Structured Query Language)

Sometimes it is handy to be able to get a quick list of when a view was changed last.  It could be for any number of reason, but sometimes folks just lose track of when a view was last updated or even need to verify that it hadn’t been changed recently.  So here is a quick SQL, which can be dropped in Aginity Workbench for Netezza to create a list of when a view was created or was update dated last.  Update the Database name in the SQL and run it.

SQL List of When A view was Last Changed or Created

select t.database — Database
, t.OWNER — Object Owner
, t.VIEWNAME — View Name
, o.objmodified — The Last Modified Datetime
, o.objcreated — Created Datetime

from _V_OBJECT o
,_V_VIEW_XDB t
where
o.objid = t.objid
and DATABASE = ‘<<Database Name>>
order by o.objcreated Desc, o.objmodified Desc;

Related References

 

How to know if your Oracle Client install is 32 Bit or 64 Bit

Oracle Database, How to know if your Oracle Client install is 32 Bit or 64 Bit

Oracle Database

 

How to know if your Oracle Client install is 32 Bit or 64 Bit

Sometimes you just need to know if your Oracle Client install is 32 bit or 64 bit. But how do you figure that out? Here are two methods you can try.

The first method

Go to the %ORACLE_HOME%\inventory\ContentsXML folder and open the comps.xml file.
Look for <DEP_LIST> on the ~second screen.

If you see this: PLAT=”NT_AMD64” then your Oracle Home is 64 bit
If you see this: PLAT=”NT_X86” then your Oracle Home is 32 bit.

It is possible to have both the 32-bit and the 64-bit Oracle Homes installed.

The second method

This method is a bit faster. Windows has a different lib directory for 32-bit and 64-bit software. If you look under the ORACLE_HOME folder if you see a “lib” AND a “lib32” folder you have a 64 bit Oracle Client. If you see just the “lib” folder you’ve got a 32 bit Oracle Client.

Related References

 

OLTP vs Data Warehousing

Database, OLTP vs Data Warehousing

Database

OLTP Versus Data Warehousing

I’ve tried to explain the difference between OLTP systems and a Data Warehouse to my managers many times, as I’ve worked at a hospital as a Data Warehouse Manager/data analyst for many years. Why was the list that came from the operational applications different than the one that came from the Data Warehouse? Why couldn’t I just get a list of patients that were laying in the hospital right now from the Data Warehouse? So I explained, and explained again, and explained to another manager, and another. You get the picture.
In this article I will explain this very same thing to you. So you know  how to explain this to your manager. Or, if you are a manager, you might understand what your data analyst can and cannot give you.

OLTP

OLTP stands for OLine Transactional Processing. With other words: getting your data directly from the operational systems to make reports. An operational system is a system that is used for the day to day processes.
For example: When a patient checks in, his or her information gets entered into a Patient Information System. The doctor put scheduled tests, a diagnoses and a treatment plan in there as well. Doctors, nurses and other people working with patients use this system on a daily basis to enter and get detailed information on their patients.
The way the data is stored within operational systems is so the data can be used efficiently by the people working directly on the product, or with the patient in this case.

Data Warehousing

A Data Warehouse is a big database that fills itself with data from operational systems. It is used solely for reporting and analytical purposes. No one uses this data for day to day operations. The beauty of a Data Warehouse is, among others, that you can combine the data from the different operational systems. You can actually combine the number of patients in a department with the number of nurses for example. You can see how far a doctor is behind schedule and find the cause of that by looking at the patients. Does he run late with elderly patients? Is there a particular diagnoses that takes more time? Or does he just oversleep a lot? You can use this information to look at the past, see trends, so you can plan for the future.

The difference between OLTP and Data Warehousing

This is how a Data Warehouse works:

How a Data Warehouse works

How a Data Warehouse works

The data gets entered into the operational systems. Then the ETL processes Extract this data from these systems, Transforms the data so it will fit neatly into the Data Warehouse, and then Loads it into the Data Warehouse. After that reports are formed with a reporting tool, from the data that lies in the Data Warehouse.

This is how OLTP works:

How OLTP works

How OLTP works

Reports are directly made from the data inside the database of the operational systems. Some operational systems come with their own reporting tool, but you can always use a standalone reporting tool to make reports form the operational databases.

Pro’s and Con’s

Data Warehousing

Pro’s:

  • There is no strain on the operational systems during business hours
    • As you can schedule the ETL processes to run during the hours the least amount of people are using the operational system, you won’t disturb the operational processes. And when you need to run a large query, the operational systems won’t be affected, as you are working directly on the Data Warehouse database.
  • Data from different systems can be combined
    • It is possible to combine finance and productivity data for example. As the ETL process transforms the data so it can be combined.
  • Data is optimized for making queries and reports
    • You use different data in reports than you use on a day to day base. A Data Warehouse is built for this. For instance: most Data Warehouses have a separate date table where the weekday, day, month and year is saved. You can make a query to derive the weekday from a date, but that takes processing time. By using a separate table like this you’ll save time and decrease the strain on the database.
  • Data is saved longer than in the source systems
    • The source systems need to have their old records deleted when they are no longer used in the day to day operations. So they get deleted to gain performance.

Con’s:

  • You always look at the past
    • A Data Warehouse is updated once a night, or even just once a week. That means that you never have the latest data. Staying with the hospital example: you never knew how many patients are in the hospital are right now. Or what surgeon didn’t show up on time this morning.
  • You don’t have all the data
    • A Data Warehouse is built for discovering trends, showing the big picture. The little details, the ones not used in trends, get discarded during the ETL process.
  • Data isn’t the same as the data in the source systems
    • Because the data is older than those of the source systems it will always be a little different. But also because of the Transformation step in the ETL process, data will be a little different. It doesn’t mean one or the other is wrong. It’s just a different way of looking at the data. For example: the Data Warehouse at the hospital excluded all transactions that were marked as cancelled. If you try to get the same reports from both systems, and don’t exclude the cancelled transactions in the source system, you’ll get different results.

online transactional processing (OLTP)

Pro’s

  • You get real time data
    • If someone is entering a new record now, you’ll see it right away in your report. No delays.
  • You’ve got all the details
    • You have access to all the details that the employees have entered into the system. No grouping, no skipping records, just all the raw data that’s available.

Con’s

  • You are putting strain on an application during business hours.
    • When you are making a large query, you can take processing space that would otherwise be available to the people that need to work with this system for their day to day operations. And if you make an error, by for instance forgetting to put a date filter on your query, you could even bring the system down so no one can use it anymore.
  • You can’t compare the data with data from other sources.
    • Even when the systems are similar. Like an HR system and a payroll system that use each other to work. Data is always going to be different because it is granulated on a different level, or not all data is relevant for both systems.
  • You don’t have access to old data
    • To keep the applications at peak performance, old data, that’s irrelevant to day to day operations is deleted.
  • Data is optimized to suit day to day operations
    • And not for report making. This means you’ll have to get creative with your queries to get the data you need.

So what method should you use?

That all depends on what you need at that moment. If you need detailed information about things that are happening now, you should use OLTP.
If you are looking for trends, or insights on a higher level, you should use a Data Warehouse.

 Related References

 

 

Netezza / PureData – Table Describe SQL

Netezza Puredata Table Describe SQL

Netezza / Puredata Table Describe SQL

If you want to describe a PureData / Netezza table in SQL, it can be done, but Netezza doesn’t have a describe command.  Here is a quick SQL, which will give the basic structure of a table or a view.  Honestly, if you have Aginity Generating the DDL is fast and more informative, at least to me.  If you have permissions to access NZSQL you can also use the slash commands (e.g. \d).

Example Netezza Table Describe SQL

select  name as Table_name,

owner as Table_Owner,

Createdate as Table_Created_Date,

type as Table_Type,

Database as Database_Name,

schema as Database_Schema,

attnum as Field_Order,

attname as Field_Name,

format_type as Field_Type,

attnotnull as Field_Not_Null_Indicator,

attlen as Field_Length

from _v_relation_column

where

name='<<Table Name Here>>’

Order by attnum;

 

Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Command-line options for nzsql, Internal slash options

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza getting started tips, About the Netezza data warehouse appliance, Commands and queries, Basic Netezza SQL information, Commonly used nzsql internal slash commands

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL introduction, The nzsql command options, Slash options

 

 

Aginity For Netezza – How to Generate DDL

Aginity, Aginity for Netezza, Netezza, PureData, DDL, SQL

Aginity

How to Generate Netezza Object DDL

In ‘Aginity for Netezza’ this process is easy, if you have a user with sufficient permissions.

The basic process is:

  • In the object browser, navigate to the Database
  • select the Object (e.g. table, view, stored procedure)
  • Right Click, Select ‘Script’ > ‘DDL to query window’
  • The Object DDL will appear in the query window
Create DDL to Query Window

Create DDL to Query Window

Related References

 

Netezza / PureData – Substring Function Example

SQL (Structured Query Language), Netezza PureData – Substring Function Example, Substr

Netezza / PureData – Substring Function Example

The function Substring (SUBSTR) in Netezza PureData provides the capability parse character type fields based on position within a character string.

Substring Functions Basic Syntax

SUBSTRING Function Syntax

SUBSTRING(<<CharacterField>>,<< StartingPosition integer>>, <<for Number of characters Integer–optional>>)

 

SUBSTR Function Syntax

SUBSTR((<>,<< StartingPosition integer>>, <>)

 

Example Substring SQL

Netezza / PureData Substring Example

Netezza / PureData Substring Example

Substring SQL Used In Example

SELECT  LOCATIONTEXT

— From the Left Of the String

— Using SUBSTRING Function

,’==SUBSTRING From the Left==’ as Divider1

,SUBSTRING(LOCATIONTEXT,1,5) as Beggining_Using_SUBSTRING_LFT

,SUBSTRING(LOCATIONTEXT,7,6) as Middle_Using_SUBSTRING_LFT

,SUBSTRING(LOCATIONTEXT,15) as End_Using_SUBSTRING_LFT

,’==SUBSTR From the Left==’ as Divider2

—Using SUBSTR Function

 

,SUBSTR(LOCATIONTEXT,1,5) as Beggining_Using_SUBSTR_LFT

,SUBSTR(LOCATIONTEXT,7,6) as Middle_Using_SUBSTR_LFT

,SUBSTR(LOCATIONTEXT,15) as End_Using_SUBSTR_LFT

— From the right of the String

,’==SUBSTRING From the Right==’ as Divider3

,SUBSTRING(LOCATIONTEXT,LENGTH(LOCATIONTEXT)-18, 8) as Beggining_Using_SUBSTRING_RGT

,SUBSTRING(LOCATIONTEXT,LENGTH(LOCATIONTEXT)-9, 6) as Middle_Using_SUBSTRING_RGT

,SUBSTRING(LOCATIONTEXT,LENGTH(LOCATIONTEXT)-1) as End_Using_SUBSTRING_RGT

,’==SUBSTR From the right==’ as Divider4

,SUBSTR(LOCATIONTEXT,LENGTH(LOCATIONTEXT)-18, 8) as Beggining_Using_SUBSTR_RGT

,SUBSTR(LOCATIONTEXT,LENGTH(LOCATIONTEXT)-9, 6) as Middle_Using_SUBSTR_RGT

,SUBSTR(LOCATIONTEXT,LENGTH(LOCATIONTEXT)-1) as End_Using_SUBSTR_RGT

FROM BLOG.D_ZIPCODE

where STATE = ‘PR’

AND CITY = ‘REPTO ROBLES’;

Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions, Character string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.1.0

IBM Netezza Database User’s Guide, Netezza SQL basics, Functions and operators, Functions, Standard string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, Functions

Netezza / PureData – Substring Function On Specific Delimiter

SQL (Structured Query Language), Netezza / PureData - Substring Function On Specific Delimiter, substr

Netezza / PureData – Substring Function On Specific Delimiter

The function Substring (SUBSTR) in Netezza PureData provides the capability parse character type fields based on position within a character string.  However, it is possible, with a little creativity, to substring based on the position of a character in the string. This approach give more flexibility to the substring function and makes the substring more useful in many cases. This approach works fine with either the substring or substr functions.  In this example, I used the position example provide the numbers for the string command.

 

Example Substring SQL

Netezza PureData Substring Function On Specific Character In String, substring, substr

Netezza PureData Substring Function On Specific Character In String

 

Substring SQL Used In Example

select LOCATIONTEXT

,position(‘,’ in LOCATIONTEXT) as Comma_Postion_In_String

—without Adjustment

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)) as Substring_On_Comma

—Adjusted to account for extra space

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)+2) as Substring_On_Comma_Ajusted

,’==Breaking_Up_The_Sting==’ as Divider

— breaking up the string

,SUBSTRING(LOCATIONTEXT,1, position(‘ ‘ in LOCATIONTEXT)-1) as Beggining_of_String

,SUBSTRING(LOCATIONTEXT,position(‘ ‘ in LOCATIONTEXT)+1, position(‘ ‘ in LOCATIONTEXT)-1) as Middle_Of_String

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)+2) as End_Of_String

 

FROM Blog.D_ZIPCODE

where STATE = ‘PR’

AND CITY = ‘REPTO ROBLES’

Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions, Character string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.1.0

IBM Netezza Database User’s Guide, Netezza SQL basics, Functions and operators, Functions, Standard string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, Functions

Netezza / PureData – Position Function

SQL (Structured Query Language), Netezza PureData Position Function, SQL, Position Function

Netezza / PureData Position Function

 

The position function in Netezza is a simple enough function, it just returns the number of a specified character within a string (char, varchar, nvarchar, etc.) or zero if the character not found. The real power of this command is when you imbed it with character function, which require a numeric response, but the character may be inconsistent from row to row in a field.

The Position Function’s Basic Syntax

position(<<character or Character String>> in <<CharacterFieldName>>)

 

Example Position Function SQL

Netezza PureData Position Function, SQL, Position Function

Netezza PureData Position Function

 

Position Function SQL Used in Example

select LOCATIONTEXT, CITY

,’==Postion Funtion Return Values==’ as Divider

,position(‘,’ in LOCATIONTEXT) as Postion_In_Nbr_String

,position(‘-‘ in LOCATIONTEXT) as Postion_Value_Not_Found

,’==Postion Combined with Substring Function==’ as Divider2

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)+2) as Position_Used_in_Substring_Function

FROM Blog.D_ZIPCODE  where STATE = ‘MN’ AND CITY = ‘RED WING’ limit 1;

 

 

Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.1.0

IBM Netezza Database User’s Guide, Netezza SQL basics, Functions and operators, Functions, Standard string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, Functions

 

PureData / Netezza – What date/time ranges are supported by Netezza?

SQL (Structured Query Language), Date/Time ranges supported by Netezza

Date/Time ranges supported by Netezza

Here is a synopsis of the temporal ranges ( date, time, and timestamp), which Netezza / PureData supports.

Temporal Type

Supported Ranges

Size In Bytes

Date

A month, day, and year. Values range from January 1, 0001, to December 31, 9999. 4 bytes

Time

An hour, minute, and second to six decimal places (microseconds). Values range from 00:00:00.000000 to 23:59:59.999999. 8 bytes

Related References

Temporal data types

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza database user documentation, Netezza SQL basics, Data types, Temporal data types

Netezza date/time data type representations

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza user-defined functions, Data type helper API reference, Temporal data type helper functions, Netezza date/time data type representations

Date/time functions

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions, Date/time functions

Netezza / PureData – How to add a Foreign Key

DDL (Data Definition Language), Netezza PureData How to add a Foreign Key

DDL (Data Definition Language)

Adding a forging key to tables in Netezza / PureData is a best practice; especially, when working with dimensionally modeled data warehouse structures and with modern governance, integration (including virtualization), presentation semantics (including reporting, business intelligence and analytics).

Foreign Key (FK) Guidelines

  • A primary key must be defined on the table and fields (or fields) to which you intend to link the foreign key
  • Avoid using distribution keys as foreign keys
  • Foreign Key field should not be nullable
  • Your foreign key link field(s) must be of the same format(s) (e.g. integer to integer, etc.)
  • Apply standard naming conventions to constraint name:
    • FK_<<Constraint_Name>>_<<Number>>
    • <<Constraint_Name>>_FK<<Number>>
  • Please note that foreign key constraints are not enforced in Netezza

Steps to add a Foreign Key

The process for adding foreign keys involves just a few steps:

  • Verify guidelines above
  • Alter table add constraint SQL command
  • Run statistics, which is optional, but strongly recommended

Basic Foreign Key SQL Command Structure

Here is the basic syntax for adding Foreign key:

ALTER TABLE <<Owner>>.<<NAME_OF_TABLE_BEING_ALTERED>>

ADD CONSTRAINT <<Constraint_Name>>_fk<Number>>

FOREIGN KEY (<<Field_Name or Field_Name List>>) REFERENCES <<Owner>>.<<target_FK_Table_Name>.(<<Field_Name or Field_Name List>>) <<On Update | On Delete>> action;

Example Foreign Key SQL Command

This is a simple one field example of the foreign key (FK)

 

ALTER TABLE Blog.job_stage_fact

ADD CONSTRAINT job_stage_fact_host_dim_fk1

FOREIGN KEY (hostid) REFERENCES Blog.host_dim(hostid) ON DELETE cascade ON UPDATE no action;

Related References

Alter Table

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza database user documentation, Netezza SQL command reference, Alter Table, constraints

 

 

Databases – Database Isolation Level Cross Reference

Database Type Isolation Levels Cross Reference

Database And Tables

 

Here is a table quick reference of some common database and/or connection types, which use connection level isolation and the equivalent isolation levels. This quick reference may prove useful as a job aid reference, when working with and making decisions about isolation level usage.

Database isolation levels

Data sources

Most restrictive isolation level

More restrictive isolation level

Less restrictive isolation level

Least restrictive isolation level

Amazon SimpleDB

Serializable Repeatable read Read committed Read Uncommitted

dashDB

Repeatable read Read stability Cursor stability Uncommitted read

DB2® family of products

Repeatable read Read stability* Cursor stability Uncommitted read

Informix®

Repeatable read Repeatable read Cursor stability Dirty read

JDBC

Serializable Repeatable read Read committed Read Uncommitted

MariaDB

Serializable Repeatable read Read committed Read Uncommitted

Microsoft SQL Server

Serializable Repeatable read Read committed Read Uncommitted

MySQL

Serializable Repeatable read Read committed Read Uncommitted

ODBC

Serializable Repeatable read Read committed Read Uncommitted

Oracle

Serializable Serializable Read committed Read committed

PostgreSQL

Serializable Repeatable read Read committed Read committed

Sybase

Level 3 Level 3 Level 1 Level 0

 

Related References

 

Database – What is a foreign key?

Acronyms, Abbreviations, Terms, And Definitions, DDL (Data Definition Language), What is a foreign key

Acronyms, Abbreviations, Terms, And Definitions

Definition of a Foreign Key

  • A foreign Key (FK) is a constraint that references the unique primary key (PK) of another table.

Facts About Foreign Keys

  • Foreign Keys act as a cross-reference between tables linking the foreign key (Child record) to the Primary key (parent record) of another table, which establishing a link/relationship between the table keys
  • Foreign keys are not enforced by all RDBMS
  • The concept of referential integrity is derived from foreign key theory
  • Because Foreign keys involve more than one table relationship, their implementation can be more complex than primary keys
  • A foreign-key constraint implicitly defines an index on the foreign-key column(s) in the child table, however, manually defining a matching index may improve join performance in some database
  • The SQL, normally, provides the following referential integrity actions for deletions, when enforcing foreign-keys

Cascade

  • The deletion of a parent (primary key) record may cause the deletion of corresponding foreign-key records.

No Action

  • Forbids the deletion of a parent (primary key) record, if there are dependent foreign-key records.   No Action does not mean to suppress the foreign-key constraint.

Set null

  • The deletion of a parent (primary key) record causes the corresponding foreign-key to be set to null.

Set default

  • The deletion of a record causes the corresponding foreign-keys be set to a default value instead of null upon deletion of a parent (primary key) record

Related References

 

Netezza / PureData – How to rebuild a Netezza view in Aginity

How To Generate View or table DDL in Aginity For Netezza PureData

How To Generate View or table DDL in Aginity For Netezza

 

Rebuilding Netezza view sometimes becomes necessary when the view’s source table have changed underneath the view.  Rebuilding a view can be done on Netezza or in Aginity. In Aginity, it is a simple process, assume your user has permissions to create or replace a view.  The process breaks down into just a few steps:

Generate the create / replace view SQL of the original view into the query window, if you don’t have it already

In the object browser:

  • Navigate to the Database and view you wish to rebuild
  • Select the view and right click
  • Select ‘Scripts’, then ‘DDL to Query window’

Make may updates to create / replace View SQL

  • This step is not always necessary, sometimes the changes which invalided the view did not actually impact the code of the view. If changes are necessary, make may updates to the SQL code.

Execute The code

  • This I usually do by choosing the ‘Execute as a single batch’ option.  Make sure the code executes successfully.

Verify the view

  • To verify the simply execute a select statement and make it executes without errors and/or warning.

Related References

 

Netezza / PureData Date – Difference in Days SQL

Netezza PureData Date Difference in Days SQL, Subtracting Non-inclusive dates, Subtracting inclusive dates

Netezza /PureData Date Difference in Days

Since Netezza does not have a datediff function, the ‘old school’ of calculating the difference, in days, between dates must be used.

Subtracting Inclusive Dates

To subtract to day and include end date, as a day, in calculation (1 day is added)

select (date(‘2015-12-31’) – date(‘2015-01-01’))+1 as Inclusive_dates

From _v_dual;

 

Subtracting Non-inclusive dates

To subtract dates non-inclusive simply subtract the dates

select date(‘2015-12-31’) – date(‘2015-01-01’) as Non_Inclusive_dates

From _v_dual;

 

Example SQL From Graphic

select (date(‘2015-12-31’) – date(‘2015-01-01’))+1 as Inclusive_dates,

date(‘2015-12-31’) – date(‘2015-01-01’) as Non_Inclusive_dates

From _v_dual;

 

Related References